Program: 54794
Project: 54794
Buggy source:
/** 
 * Loads a new module into <code>moduleDef</code> as an included module.
 * @param logger Logs the process.
 * @param moduleName The module to load.
 * @param moduleDef The module to add the new module to.
 * @throws UnableToCompleteException
 */
void nestedLoad(TreeLogger logger,String moduleName,ModuleDef moduleDef) throws UnableToCompleteException {
  if (alreadyLoadedModules.contains(moduleName)) {
    logger.log(TreeLogger.TRACE,"String_Node_Str" + moduleName + "String_Node_Str",null);
    return;
  }
 else {
    alreadyLoadedModules.add(moduleName);
  }
  String slashedModuleName=moduleName.replace('.','/');
  String resName=slashedModuleName + "String_Node_Str";
  URL moduleURL=classLoader.getResource(resName);
  if (moduleURL != null) {
    String externalForm=moduleURL.toExternalForm();
    logger.log(TreeLogger.TRACE,"String_Node_Str" + externalForm,null);
    try {
      if ((!(externalForm.startsWith("String_Node_Str"))) && (!(externalForm.startsWith("String_Node_Str"))) && (!(externalForm.startsWith("String_Node_Str")))&& (!(externalForm.startsWith("String_Node_Str")))) {
        File gwtXmlFile=new File(new URI(externalForm));
        moduleDef.addGwtXmlFile(gwtXmlFile);
      }
    }
 catch (    URISyntaxException e) {
      logger.log(TreeLogger.ERROR,"String_Node_Str",e);
      throw new UnableToCompleteException();
    }
  }
  if (moduleURL == null) {
    String msg="String_Node_Str" + resName + "String_Node_Str";
    logger.log(TreeLogger.ERROR,msg,null);
    throw new UnableToCompleteException();
  }
  String moduleDir="String_Node_Str";
  int i=slashedModuleName.lastIndexOf('/');
  if (i != -1) {
    moduleDir=slashedModuleName.substring(0,i) + "String_Node_Str";
  }
  Reader r=null;
  try {
    r=Util.createReader(logger,moduleURL);
    ModuleDefSchema schema=new ModuleDefSchema(logger,this,moduleURL,moduleDir,moduleDef);
    ReflectiveParser.parse(logger,schema,r);
  }
  finally {
    Utility.close(r);
  }
}

Fixed version (ground truth):
/** 
 * Loads a new module into <code>moduleDef</code> as an included module.
 * @param logger Logs the process.
 * @param moduleName The module to load.
 * @param moduleDef The module to add the new module to.
 * @throws UnableToCompleteException
 */
void nestedLoad(TreeLogger logger,String moduleName,ModuleDef moduleDef) throws UnableToCompleteException {
  if (alreadyLoadedModules.contains(moduleName)) {
    logger.log(TreeLogger.TRACE,"String_Node_Str" + moduleName + "String_Node_Str",null);
    return;
  }
 else {
    alreadyLoadedModules.add(moduleName);
  }
  String slashedModuleName=moduleName.replace('.','/');
  String resName=slashedModuleName + ModuleDefLoader.GWT_MODULE_XML_SUFFIX;
  URL moduleURL=classLoader.getResource(resName);
  if (moduleURL != null) {
    String externalForm=moduleURL.toExternalForm();
    logger.log(TreeLogger.TRACE,"String_Node_Str" + externalForm,null);
    try {
      if ((!(externalForm.startsWith("String_Node_Str"))) && (!(externalForm.startsWith("String_Node_Str"))) && (!(externalForm.startsWith("String_Node_Str")))&& (!(externalForm.startsWith("String_Node_Str")))) {
        File gwtXmlFile=new File(new URI(externalForm));
        moduleDef.addGwtXmlFile(gwtXmlFile);
      }
    }
 catch (    URISyntaxException e) {
      logger.log(TreeLogger.ERROR,"String_Node_Str",e);
      throw new UnableToCompleteException();
    }
  }
  if (moduleURL == null) {
    String msg="String_Node_Str" + resName + "String_Node_Str";
    logger.log(TreeLogger.ERROR,msg,null);
    throw new UnableToCompleteException();
  }
  String moduleDir="String_Node_Str";
  int i=slashedModuleName.lastIndexOf('/');
  if (i != -1) {
    moduleDir=slashedModuleName.substring(0,i) + "String_Node_Str";
  }
  Reader r=null;
  try {
    r=Util.createReader(logger,moduleURL);
    ModuleDefSchema schema=new ModuleDefSchema(logger,this,moduleURL,moduleDir,moduleDef);
    ReflectiveParser.parse(logger,schema,r);
  }
  finally {
    Utility.close(r);
  }
}