Program: 39028
Project: 39028
Buggy source:
public void loadModule(File dir,boolean updateCheck){
  if (isLoaded(dir))   return;
  File metadataFile=new File(dir,"String_Node_Str");
  ModuleMetadata metadata=null;
  if (metadataFile.exists()) {
    try {
      metadata=new Gson().fromJson(FileLib.read(metadataFile),ModuleMetadata.class);
      metadata.setFileName(dir.getName());
    }
 catch (    Exception exception) {
      Console.getInstance().printStackTrace(exception);
    }
  }
  try {
    if (metadata != null && updateCheck) {
      try {
        Console.getInstance().out.println("String_Node_Str" + metadata.getFileName());
        File newMetadataFile=new File(modulesDir,"String_Node_Str");
        FileUtils.copyURLToFile(new URL("String_Node_Str" + metadata.getFileName()),newMetadataFile);
        String currVersion=metadata.getVersion();
        try {
          ModuleMetadata newMetadata=new Gson().fromJson(new FileReader(newMetadataFile),ModuleMetadata.class);
          String newVersion=newMetadata.getVersion();
          if (!newVersion.equals(currVersion)) {
            downloadModule(metadata.getFileName(),false);
            ChatLib.chat("String_Node_Str" + metadata.getName());
          }
        }
 catch (        Exception exception) {
          Console.getInstance().printStackTrace(exception);
        }
        newMetadataFile.delete();
      }
 catch (      IOException e) {
        Console.getInstance().out.println("String_Node_Str" + metadata.getName());
      }
    }
    String compiledScript=compileScripts(dir,metadata.getIgnored());
    Module module=new Module(dir.getName(),getAllFiles(dir,metadata.getIgnored()),metadata);
    getRequiredModules(metadata,updateCheck);
    TriggerRegister.currentModule=module;
    getScriptEngine().eval(compiledScript);
    TriggerRegister.currentModule=null;
    cachedModules.add(module);
  }
 catch (  IOException|ScriptException exception) {
    Console.getInstance().printStackTrace(exception);
  }
}

Fixed version (ground truth):
public void loadModule(File dir,boolean updateCheck){
  if (isLoaded(dir))   return;
  File metadataFile=new File(dir,"String_Node_Str");
  ModuleMetadata metadata=new ModuleMetadata();
  if (metadataFile.exists()) {
    try {
      metadata=new Gson().fromJson(FileLib.read(metadataFile),ModuleMetadata.class);
      metadata.setFileName(dir.getName());
    }
 catch (    Exception exception) {
      Console.getInstance().printStackTrace(exception);
    }
  }
  try {
    if (metadata != null && updateCheck) {
      try {
        Console.getInstance().out.println("String_Node_Str" + metadata.getFileName());
        File newMetadataFile=new File(modulesDir,"String_Node_Str");
        FileUtils.copyURLToFile(new URL("String_Node_Str" + metadata.getFileName()),newMetadataFile);
        String currVersion=metadata.getVersion();
        try {
          ModuleMetadata newMetadata=new Gson().fromJson(new FileReader(newMetadataFile),ModuleMetadata.class);
          String newVersion=newMetadata.getVersion();
          if (!newVersion.equals(currVersion)) {
            downloadModule(metadata.getFileName(),false);
            ChatLib.chat("String_Node_Str" + metadata.getName());
          }
        }
 catch (        Exception exception) {
          Console.getInstance().printStackTrace(exception);
        }
        newMetadataFile.delete();
      }
 catch (      IOException e) {
        Console.getInstance().out.println("String_Node_Str" + metadata.getName());
      }
    }
    String compiledScript=compileScripts(dir,metadata.getIgnored());
    Module module=new Module(dir.getName(),getAllFiles(dir,metadata.getIgnored()),metadata);
    getRequiredModules(metadata,updateCheck);
    TriggerRegister.currentModule=module;
    getScriptEngine().eval(compiledScript);
    TriggerRegister.currentModule=null;
    cachedModules.add(module);
  }
 catch (  IOException|ScriptException exception) {
    Console.getInstance().printStackTrace(exception);
  }
}