Program: 34679
Project: 34679
Buggy source:
@Override public void run(){
  try {
    JsonElement root=new JsonParser().parse(IOUtils.toString(new URL(url),Charsets.UTF_8));
    List<VersionEntry> versionList=new ArrayList<>();
    VersionEntry currentVersion=null, newestVersion=null, newestVersionForCurrentMC=null;
    int counter=-1, buildId=0;
    String downloadURL="String_Node_Str";
    Log.debug("String_Node_Str");
    for (    Entry<String,JsonElement> entry : root.getAsJsonObject().entrySet()) {
      if (entry.getKey().charAt(0) == '~') {
switch (entry.getKey().substring(1)) {
case "String_Node_Str":
          downloadURL=entry.getValue().getAsString();
        break;
    }
  }
 else   versionList.add(new VersionEntry(entry.getKey(),entry.getValue().getAsJsonObject()));
}
Collections.sort(versionList);
for (VersionEntry version : versionList) {
  Log.debug("String_Node_Str",version.versionIdentifier);
  if (newestVersion == null)   newestVersion=version;
  if (version.isSupportedByMC(mcVersion)) {
    if (newestVersionForCurrentMC == null)     newestVersionForCurrentMC=version;
    ++counter;
  }
  if (version.modVersion.equals(modVersion)) {
    buildId=version.buildId;
    UpdateNotificationManager.refreshUpdateData(version);
    currentVersion=version;
    break;
  }
}
if (currentVersion == null) {
  Log.debug("String_Node_Str");
  return;
}
 else Log.debug("String_Node_Str");
UpdateSavefile saveFile=new UpdateSavefile();
saveFile.newestModVersion=counter > 0 ? newestVersionForCurrentMC.versionIdentifier : newestVersion.versionIdentifier;
saveFile.lastCheckTime=Calendar.getInstance().getTimeInMillis();
saveFile.save();
StringBuilder message=null;
boolean notifications=UpdateNotificationManager.enableNotifications;
if (buildId != HardcoreEnderExpansion.buildId) {
  message=new StringBuilder().append(EnumChatFormatting.LIGHT_PURPLE).append("String_Node_Str").append(modVersion).append("String_Node_Str").append(EnumChatFormatting.RESET).append("String_Node_Str").append(counter == 0 ? "String_Node_Str" : "String_Node_Str").append("String_Node_Str");
}
 else if (counter > 0 && notifications && (!UpdateNotificationManager.enableOneReportPerUpdate || !newestVersionForCurrentMC.versionIdentifier.equals(saveFile.newestModVersion))) {
  message=new StringBuilder().append(EnumChatFormatting.LIGHT_PURPLE).append("String_Node_Str").append(modVersion).append("String_Node_Str").append(EnumChatFormatting.RESET).append("String_Node_Str").append(EnumChatFormatting.YELLOW).append(newestVersionForCurrentMC.modVersionName).append(EnumChatFormatting.RESET).append("String_Node_Str").append(mcVersion).append("String_Node_Str").append(newestVersionForCurrentMC.releaseDate).append("String_Node_Str");
  if (counter >= 1) {
    int days=DragonUtil.getDayDifference(Calendar.getInstance(),currentVersion.convertReleaseDate());
    int months=MathUtil.floor((days + 8D) / 30D);
    if (months > 0)     message.append("String_Node_Str").append(months).append(months == 1 ? "String_Node_Str" : "String_Node_Str").append("String_Node_Str");
 else     message.append("String_Node_Str");
    message.append(counter).append(counter == 1 ? "String_Node_Str" : "String_Node_Str");
  }
  if (UpdateNotificationManager.enableNewerMC && newestVersion != newestVersionForCurrentMC) {
    message.append("String_Node_Str").append(EnumChatFormatting.GREEN).append(newestVersion.modVersion).append(EnumChatFormatting.RESET).append("String_Node_Str").append(CommandBase.joinNiceString(newestVersion.mcVersions)).append('.');
  }
}
 else if (UpdateNotificationManager.enableNewerMC && notifications && newestVersion != newestVersionForCurrentMC && (!UpdateNotificationManager.enableOneReportPerUpdate || !newestVersion.versionIdentifier.equals(saveFile.newestModVersion))) {
  message=new StringBuilder().append(EnumChatFormatting.LIGHT_PURPLE).append("String_Node_Str").append(modVersion).append("String_Node_Str").append(EnumChatFormatting.RESET).append("String_Node_Str").append(EnumChatFormatting.GREEN).append(newestVersion.modVersion).append(EnumChatFormatting.RESET).append("String_Node_Str").append(CommandBase.joinNiceString(newestVersion.mcVersions)).append("String_Node_Str").append(newestVersion.releaseDate).append("String_Node_Str");
}
if (message != null) {
  message.append("String_Node_Str").append(EnumChatFormatting.GOLD).append("String_Node_Str").append(downloadURL);
  message.append("String_Node_Str").append(EnumChatFormatting.GOLD).append("String_Node_Str").append(EnumChatFormatting.RESET).append("String_Node_Str");
  for (  String s : message.toString().split("String_Node_Str"))   HardcoreEnderExpansion.notifications.report(s,true);
}
}
 catch (UnknownHostException e) {
}
catch (Exception e) {
Log.throwable(e,"String_Node_Str");
}
}

Fixed version (ground truth):
@Override public void run(){
  try {
    JsonElement root=new JsonParser().parse(IOUtils.toString(new URL(url),Charsets.UTF_8));
    List<VersionEntry> versionList=new ArrayList<>();
    VersionEntry currentVersion=null, newestVersion=null, newestVersionForCurrentMC=null;
    int counter=-1, buildId=0;
    String downloadURL="String_Node_Str";
    Log.debug("String_Node_Str");
    for (    Entry<String,JsonElement> entry : root.getAsJsonObject().entrySet()) {
      if (entry.getKey().charAt(0) == '~') {
switch (entry.getKey().substring(1)) {
case "String_Node_Str":
          downloadURL=entry.getValue().getAsString();
        break;
    }
  }
 else   versionList.add(new VersionEntry(entry.getKey(),entry.getValue().getAsJsonObject()));
}
Collections.sort(versionList);
for (VersionEntry version : versionList) {
  Log.debug("String_Node_Str",version.versionIdentifier);
  if (newestVersion == null)   newestVersion=version;
  if (version.isSupportedByMC(mcVersion)) {
    if (newestVersionForCurrentMC == null)     newestVersionForCurrentMC=version;
    ++counter;
  }
  if (version.modVersion.equals(modVersion)) {
    buildId=version.buildId;
    UpdateNotificationManager.refreshUpdateData(version);
    currentVersion=version;
    break;
  }
}
if (currentVersion == null) {
  Log.debug("String_Node_Str");
  return;
}
 else Log.debug("String_Node_Str");
UpdateSavefile saveFile=new UpdateSavefile();
saveFile.newestModVersion=counter > 0 ? newestVersionForCurrentMC.versionIdentifier : newestVersion.versionIdentifier;
saveFile.lastCheckTime=Calendar.getInstance().getTimeInMillis();
saveFile.save();
StringBuilder message=null;
boolean notifications=UpdateNotificationManager.enableNotifications;
String prevMod=UpdateNotificationManager.lastCheckedMod;
if (buildId != HardcoreEnderExpansion.buildId && UpdateNotificationManager.enableBuildCheck) {
  message=new StringBuilder().append(EnumChatFormatting.LIGHT_PURPLE).append("String_Node_Str").append(modVersion).append("String_Node_Str").append(EnumChatFormatting.RESET).append("String_Node_Str").append(counter == 0 ? "String_Node_Str" : "String_Node_Str").append("String_Node_Str");
}
 else if (counter > 0 && notifications) {
  if (!UpdateNotificationManager.enableOneReportPerUpdate || !newestVersionForCurrentMC.versionIdentifier.equals(prevMod)) {
    message=new StringBuilder().append(EnumChatFormatting.LIGHT_PURPLE).append("String_Node_Str").append(modVersion).append("String_Node_Str").append(EnumChatFormatting.RESET).append("String_Node_Str").append(EnumChatFormatting.YELLOW).append(newestVersionForCurrentMC.modVersionName).append(EnumChatFormatting.RESET).append("String_Node_Str").append(EnumChatFormatting.YELLOW).append("String_Node_Str").append(mcVersion).append(EnumChatFormatting.RESET).append("String_Node_Str").append(newestVersionForCurrentMC.releaseDate).append("String_Node_Str");
    if (counter >= 1) {
      int days=DragonUtil.getDayDifference(Calendar.getInstance(),currentVersion.convertReleaseDate());
      int months=MathUtil.floor((days + 8D) / 30D);
      if (months > 0)       message.append("String_Node_Str").append(months).append(months == 1 ? "String_Node_Str" : "String_Node_Str").append("String_Node_Str");
 else       message.append("String_Node_Str");
      message.append(counter).append(counter == 1 ? "String_Node_Str" : "String_Node_Str");
    }
    if (UpdateNotificationManager.enableNewerMC && newestVersion != newestVersionForCurrentMC) {
      message.append("String_Node_Str").append(EnumChatFormatting.YELLOW).append(newestVersion.modVersion).append(EnumChatFormatting.RESET).append("String_Node_Str").append(EnumChatFormatting.YELLOW).append("String_Node_Str").append(CommandBase.joinNiceString(newestVersion.mcVersions)).append(EnumChatFormatting.RESET).append('.');
    }
  }
}
 else if (UpdateNotificationManager.enableNewerMC && notifications && newestVersion != newestVersionForCurrentMC && (!UpdateNotificationManager.enableOneReportPerUpdate || !newestVersion.versionIdentifier.equals(prevMod))) {
  message=new StringBuilder().append(EnumChatFormatting.LIGHT_PURPLE).append("String_Node_Str").append(modVersion).append("String_Node_Str").append(EnumChatFormatting.RESET).append("String_Node_Str").append(EnumChatFormatting.YELLOW).append(newestVersion.modVersion).append(EnumChatFormatting.RESET).append("String_Node_Str").append(EnumChatFormatting.YELLOW).append("String_Node_Str").append(CommandBase.joinNiceString(newestVersion.mcVersions)).append(EnumChatFormatting.RESET).append("String_Node_Str").append(newestVersion.releaseDate).append("String_Node_Str");
}
if (message != null) {
  message.append("String_Node_Str").append(EnumChatFormatting.GOLD).append("String_Node_Str").append(downloadURL);
  message.append("String_Node_Str").append(EnumChatFormatting.GOLD).append("String_Node_Str").append(EnumChatFormatting.RESET).append("String_Node_Str");
  for (  String s : message.toString().split("String_Node_Str"))   HardcoreEnderExpansion.notifications.report(s,true);
}
}
 catch (UnknownHostException e) {
}
catch (Exception e) {
Log.throwable(e,"String_Node_Str");
}
}