Program: 39544
Project: 39544
Buggy source:
@Override public Object execute(ExecutionEvent event) throws ExecutionException {
  IWorkspace workspace=ResourcesPlugin.getWorkspace();
  IProject project=workspace.getRoot().getProject("String_Node_Str");
  if (!project.exists()) {
    throw new ProjectNotFoundException();
  }
  try {
    EclipseProject eclipseProject=new EclipseProject(project);
    WebXmlParser webXmlParser=WebXmlParser.build(eclipseProject);
    PomParser pomParser=new PomParser(eclipseProject);
    SpringParser springParser=new SpringParser(eclipseProject,webXmlParser.getSpringConfigLocations());
    PropertiesParser propertiesParser=new PropertiesParser(eclipseProject,pomParser,springParser.getPropertiesFilePath());
    Builder builder=Mysql.builder();
    builder.setConnectorJarPath(eclipseProject.concatMavenResitoryPath(pomParser.dbConnectorJarRelativePath("String_Node_Str"))).setDriverClassName(propertiesParser.getProperty(springParser.getDatabaseDriverClassName())).setUsername(propertiesParser.getProperty(springParser.getDatabaseUsername())).setPassword(propertiesParser.getProperty(springParser.getDatabasePassword())).setUrl(propertiesParser.getProperty(springParser.getDatabaseUrl()));
    Sql mysql=builder.build();
    MybatisConfigFileGenerator configFile=new MybatisConfigFileGenerator(eclipseProject,mysql);
    System.out.println(configFile.getXmlConfig());
    MybatisXmlParser mybatisXmlParser=new MybatisXmlParser(eclipseProject.getInputStream(MybatisConfigFileGenerator.CONFIG_FILENAME));
    System.out.println(mybatisXmlParser.mergeGeneratedConfigAndGetXmlString(configFile));
  }
 catch (  Exception e) {
    e.printStackTrace();
  }
  return null;
}

Fixed version (ground truth):
@Override public Object execute(ExecutionEvent event) throws ExecutionException {
  IWorkspace workspace=ResourcesPlugin.getWorkspace();
  IProject project=workspace.getRoot().getProject("String_Node_Str");
  if (!project.exists()) {
    throw new ProjectNotFoundException();
  }
  try {
    EclipseProject eclipseProject=new EclipseProject(project);
    WebXmlParser webXmlParser=WebXmlParser.build(eclipseProject);
    PomParser pomParser=new PomParser(eclipseProject);
    SpringParser springParser=new SpringParser(eclipseProject,webXmlParser.getSpringConfigLocations());
    PropertiesParser propertiesParser=new PropertiesParser(eclipseProject,pomParser,springParser.getPropertiesFilePath());
    Builder builder=Mysql.builder();
    builder.setConnectorJarPath(eclipseProject.concatMavenResitoryPath(pomParser.dbConnectorJarRelativePath("String_Node_Str"))).setDriverClassName(propertiesParser.getProperty(springParser.getDatabaseDriverClassName())).setUsername(propertiesParser.getProperty(springParser.getDatabaseUsername())).setPassword(propertiesParser.getProperty(springParser.getDatabasePassword())).setUrl(propertiesParser.getProperty(springParser.getDatabaseUrl()));
    Sql mysql=builder.build();
    MybatisConfigFileGenerator configFile=new MybatisConfigFileGenerator(eclipseProject,mysql);
    System.out.println(configFile.getXmlConfig());
    MybatisXmlParser mybatisXmlParser=null;
    try {
      mybatisXmlParser=new MybatisXmlParser(eclipseProject.getInputStream(MybatisConfigFileGenerator.CONFIG_FILENAME));
    }
 catch (    Exception e) {
    }
    String xmlFileContent=null;
    if (mybatisXmlParser != null) {
      xmlFileContent=mybatisXmlParser.mergeGeneratedConfigAndGetXmlString(configFile);
    }
 else {
      xmlFileContent=configFile.getXmlConfig();
    }
    eclipseProject.writeFile(MybatisConfigFileGenerator.CONFIG_FILENAME,xmlFileContent);
  }
 catch (  Exception e) {
    e.printStackTrace();
  }
  return null;
}