Program: 20895
Project: 20895
Buggy source:
@Override public ArrayList<DownloadLink> decryptIt(CryptedLink parameter,ProgressController progress) throws Exception {
  ArrayList<DownloadLink> decryptedLinks=new ArrayList<DownloadLink>();
  String param=parameter.toString();
  String url=param;
  if (url.contains("String_Node_Str"))   url=url.split("String_Node_Str")[0];
  String url2=url.concat("String_Node_Str");
  br.getPage(url2);
  if (br.containsHTML("String_Node_Str")) {
    throw new PluginException(LinkStatus.ERROR_IP_BLOCKED,5 * 60 * 1000);
  }
  String[] links=br.getRegex("String_Node_Str").getColumn(0);
  if (links == null || links.length == 0)   return null;
  progress.setRange(links.length);
  for (  String dl : links) {
    DownloadLink link=createDownloadlink(url.replace("String_Node_Str","String_Node_Str") + "String_Node_Str" + dl);
    int counter=120000;
    String filenumber=new Regex(dl,"String_Node_Str").getMatch(0);
    if (filenumber != null && !dl.contains("String_Node_Str")) {
      counter=counter + Integer.parseInt(filenumber);
      String regexedCounter=new Regex(Integer.toString(counter),"String_Node_Str").getMatch(0);
      link.setName(dl.replace(filenumber,"String_Node_Str") + regexedCounter);
    }
 else {
      link.setName(dl + "String_Node_Str");
    }
    decryptedLinks.add(link);
    progress.increase(1);
  }
  br.getPage(param);
  String fpName=br.getRegex("String_Node_Str").getMatch(0);
  if (fpName != null) {
    FilePackage fp=FilePackage.getInstance();
    fp.setName(fpName);
    fp.addLinks(decryptedLinks);
  }
  return decryptedLinks;
}

Fixed version (ground truth):
@Override public ArrayList<DownloadLink> decryptIt(CryptedLink parameter,ProgressController progress) throws Exception {
  ArrayList<DownloadLink> decryptedLinks=new ArrayList<DownloadLink>();
  String param=parameter.toString();
  String url=param;
  if (url.contains("String_Node_Str"))   url=url.split("String_Node_Str")[0];
  String url2=url.concat("String_Node_Str");
  br.setFollowRedirects(true);
  br.getPage(url2);
  if (br.containsHTML("String_Node_Str")) {
    url=br.getRedirectLocation() != null ? br.getRedirectLocation() : br.getRegex("String_Node_Str").getMatch(0);
    if (url == null)     throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
    throw new PluginException(LinkStatus.ERROR_IP_BLOCKED,60 * 60 * 1001l);
  }
  String[] links=br.getRegex("String_Node_Str").getColumn(0);
  if (links == null || links.length == 0)   return null;
  progress.setRange(links.length);
  for (  String dl : links) {
    DownloadLink link=createDownloadlink(url.replace("String_Node_Str","String_Node_Str") + "String_Node_Str" + dl);
    int counter=120000;
    String filenumber=new Regex(dl,"String_Node_Str").getMatch(0);
    if (filenumber != null && !dl.contains("String_Node_Str")) {
      counter=counter + Integer.parseInt(filenumber);
      String regexedCounter=new Regex(Integer.toString(counter),"String_Node_Str").getMatch(0);
      link.setName(dl.replace(filenumber,"String_Node_Str") + regexedCounter);
    }
 else {
      link.setName(dl + "String_Node_Str");
    }
    decryptedLinks.add(link);
    progress.increase(1);
  }
  br.getPage(param);
  String fpName=br.getRegex("String_Node_Str").getMatch(0);
  if (fpName != null) {
    FilePackage fp=FilePackage.getInstance();
    fp.setName(fpName);
    fp.addLinks(decryptedLinks);
  }
  return decryptedLinks;
}