Program: 98866
Project: 98866
Buggy source:
private void crearDeliverFile() throws Exception {
  if (matrizFile != null) {
    String ruta=this.rutaFile();
    File directorioPracticas=new File(ruta);
    File[] ficheros=directorioPracticas.listFiles();
    if (ficheros != null && ficheros.length > 0 || codePlain != null) {
      DeliverFile[] files=null;
      if (ficheros != null && ficheros.length > 0) {
        log.info("String_Node_Str" + ficheros.length);
        fileDim=ficheros.length;
        files=new DeliverFile[ficheros.length];
        Boolean isFile=false;
        for (int i=0; i < ficheros.length; i++) {
          File file=ficheros[i];
          log.info("String_Node_Str" + file.getName());
          files[i]=new DeliverFile(new File(ruta),new File(file.getName()));
          for (int j=0; j < matrizFile.length; j++) {
            String nameFileHas=matrizFile[j][0].replaceAll("String_Node_Str","String_Node_Str");
            String nameFileFolder=String.valueOf(file.getName().hashCode()).replaceAll("String_Node_Str","String_Node_Str");
            if (nameFileHas.equals("String_Node_Str" + nameFileFolder)) {
              isFile=true;
              files[i].setIsReport(true);
            }
            if (nameFileHas.equals("String_Node_Str" + nameFileFolder)) {
              isFile=true;
              log.warn("String_Node_Str");
              files[i].setIsCode(true);
            }
            if (nameFileHas.equals("String_Node_Str" + nameFileFolder)) {
              isFile=true;
              log.warn("String_Node_Str");
              files[i].setIsMain(true);
            }
          }
        }
        if (isFile && listActivity != null) {
          Activity objActivity=new Activity();
          for (int j=0; j < listActivity.length; j++) {
            if (listActivity[j].getIndex() == Integer.parseInt(s_activ)) {
              objActivity=listActivity[j];
            }
          }
          if (finalDeliver) {
            DeliverDetail objDetail=bUOC.addDeliver(objActivity,files);
            resulMessage=objDetail.getCompileMessage();
            if (resulMessage.length() == 0)             resulMessage="String_Node_Str";
          }
        }
      }
      if ((finalDeliver != null && !finalDeliver) && (matrizFile.length > 1 || (codePlain != null && codePlain.length() > 5))) {
        Test[] tests=new Test[1];
        if (testPlain != null && testPlainOut != null) {
          tests[0]=new Test();
          if (testPlain != null && testPlain.length() > 1) {
            tests[0].setInputText(testPlain);
          }
          if (testPlainOut != null && testPlainOut.length() > 1) {
            tests[0].setExpectedOutput(testPlainOut);
          }
          if (testFile != null) {
            tests[0].setInputFilePath(testFile.getAbsolutePath());
          }
          if (testFileOut != null) {
            tests[0].setExpectedOutputFilePath(testFileOut.getAbsolutePath());
          }
          tests[0].setPublic(true);
        }
        if (codePlain != null && codePlain.length() > 5) {
          DeliverDetail objDetail=bUOC.compileCode(codePlain,"String_Node_Str",tests);
          resulMessage=objDetail.getCompileMessage();
          if (resulMessage.length() == 0)           resulMessage="String_Node_Str";
        }
 else         if (files != null) {
          DeliverDetail objDetail=bUOC.compileCode(files,"String_Node_Str",tests,ruta);
          resulMessage=objDetail.getCompileMessage();
          if (resulMessage.length() == 0)           resulMessage="String_Node_Str";
        }
      }
    }
  }
}

Fixed version (ground truth):
private void crearDeliverFile() throws Exception {
  if (matrizFile != null) {
    String ruta=this.rutaFile();
    File directorioPracticas=new File(ruta);
    File[] ficheros=directorioPracticas.listFiles();
    if (ficheros != null && ficheros.length > 0 || codePlain != null) {
      DeliverFile[] files=null;
      if (ficheros != null && ficheros.length > 0) {
        log.info("String_Node_Str" + ficheros.length);
        fileDim=ficheros.length;
        files=new DeliverFile[ficheros.length];
        Boolean isFile=false;
        for (int i=0; i < ficheros.length; i++) {
          File file=ficheros[i];
          log.info("String_Node_Str" + file.getName());
          files[i]=new DeliverFile(new File(ruta),new File(file.getName()));
          for (int j=0; j < matrizFile.length; j++) {
            String nameFileHas=matrizFile[j][0].replaceAll("String_Node_Str","String_Node_Str");
            String nameFileFolder=String.valueOf(file.getName().hashCode()).replaceAll("String_Node_Str","String_Node_Str");
            if (nameFileHas.equals("String_Node_Str" + nameFileFolder)) {
              isFile=true;
              files[i].setIsReport(true);
            }
            if (nameFileHas.equals("String_Node_Str" + nameFileFolder)) {
              isFile=true;
              files[i].setIsCode(true);
            }
            if (nameFileHas.equals("String_Node_Str" + nameFileFolder)) {
              isFile=true;
              files[i].setIsMain(true);
            }
          }
        }
        if (isFile && listActivity != null) {
          Activity objActivity=new Activity();
          for (int j=0; j < listActivity.length; j++) {
            if (listActivity[j].getIndex() == Integer.parseInt(s_activ)) {
              objActivity=listActivity[j];
            }
          }
          if (finalDeliver) {
            DeliverDetail objDetail=bUOC.addDeliver(objActivity,files);
            resulMessage=objDetail.getCompileMessage();
            if (resulMessage.length() == 0)             resulMessage="String_Node_Str";
          }
        }
      }
      if ((finalDeliver != null && !finalDeliver) && (matrizFile.length > 1 || (codePlain != null && codePlain.length() > 5))) {
        Test[] tests=new Test[1];
        if (testPlain != null && testPlainOut != null) {
          tests[0]=new Test();
          if (testPlain != null && testPlain.length() > 1) {
            tests[0].setInputText(testPlain);
          }
          if (testPlainOut != null && testPlainOut.length() > 1) {
            tests[0].setExpectedOutput(testPlainOut);
          }
          if (testFile != null) {
            tests[0].setInputFilePath(testFile.getAbsolutePath());
          }
          if (testFileOut != null) {
            tests[0].setExpectedOutputFilePath(testFileOut.getAbsolutePath());
          }
          tests[0].setPublic(true);
        }
        if (codePlain != null && codePlain.length() > 5) {
          DeliverDetail objDetail=bUOC.compileCode(codePlain,"String_Node_Str",tests);
          resulMessage=objDetail.getCompileMessage();
          if (resulMessage.length() == 0)           resulMessage="String_Node_Str";
        }
 else         if (files != null) {
          DeliverDetail objDetail=bUOC.compileCode(files,"String_Node_Str",tests,ruta);
          resulMessage=objDetail.getCompileMessage();
          if (resulMessage.length() == 0)           resulMessage="String_Node_Str";
        }
      }
    }
  }
}