Program: 20839
Project: 20839
Buggy source:
public ArrayList<DownloadLink> decryptIt(CryptedLink param,ProgressController progress) throws Exception {
  ArrayList<DownloadLink> decryptedLinks=new ArrayList<DownloadLink>();
  String parameter=param.toString();
  br.setFollowRedirects(false);
  br.getPage(parameter);
  if (br.containsHTML("String_Node_Str"))   throw new DecrypterException(JDL.L("String_Node_Str","String_Node_Str"));
  if (br.containsHTML("String_Node_Str"))   throw new DecrypterException("String_Node_Str");
  if (br.containsHTML("String_Node_Str"))   throw new DecrypterException("String_Node_Str");
  if (!parameter.contains("String_Node_Str")) {
    Form capForm=new Form();
    capForm.put("String_Node_Str","String_Node_Str");
    capForm.setMethod(MethodType.POST);
    capForm.setAction(parameter);
    for (int i=0; i <= 5; i++) {
      if (br.containsHTML(PASSWORDPROTECTEDTEXT)) {
        capForm.put("String_Node_Str",Plugin.getUserInput("String_Node_Str",param));
      }
      if (br.containsHTML(RECAPTCHATEXT)) {
        PluginForHost recplug=JDUtilities.getPluginForHost("String_Node_Str");
        jd.plugins.hoster.DirectHTTP.Recaptcha rc=((DirectHTTP)recplug).getReCaptcha(br);
        rc.parse();
        rc.load();
        File cf=rc.downloadCaptcha(getLocalCaptchaFile());
        capForm.put("String_Node_Str",rc.getChallenge());
        capForm.put("String_Node_Str",getCaptchaCode(cf,param));
      }
 else       if (br.getRegex(CAPTCHAREGEX1).getMatch(0) != null) {
        capForm.put("String_Node_Str",getCaptchaCode(br.getRegex(CAPTCHAREGEX1).getMatch(0),param));
      }
 else       if (br.getRegex(CAPTCHAREGEX2).getMatch(0) != null) {
        capForm.put("String_Node_Str",getCaptchaCode(br.getRegex(CAPTCHAREGEX2).getMatch(0),param));
      }
 else       if (br.containsHTML(CAPTCHATEXT3)) {
        Browser xmlbrowser=br.cloneBrowser();
        xmlbrowser.getPage("String_Node_Str");
        capForm.put("String_Node_Str",xmlbrowser.toString().trim());
      }
      br.submitForm(capForm);
      if (br.containsHTML(RECAPTCHATEXT) || br.getRegex(CAPTCHAREGEX1).getMatch(0) != null || br.getRegex(CAPTCHAREGEX2).getMatch(0) != null || br.containsHTML(PASSWORDPROTECTEDTEXT))       continue;
      if (br.containsHTML(CAPTCHATEXT3)) {
        logger.warning("String_Node_Str" + parameter);
        return null;
      }
      break;
    }
    if (br.containsHTML(RECAPTCHATEXT) || br.getRegex(CAPTCHAREGEX1).getMatch(0) != null || br.getRegex(CAPTCHAREGEX2).getMatch(0) != null)     throw new DecrypterException(DecrypterException.CAPTCHA);
    if (br.containsHTML(PASSWORDPROTECTEDTEXT))     throw new DecrypterException(DecrypterException.PASSWORD);
    if (br.containsHTML("String_Node_Str"))     throw new DecrypterException(JDL.L("String_Node_Str","String_Node_Str"));
    if (br.containsHTML("String_Node_Str")) {
      decryptedLinks=loadcontainer("String_Node_Str",param);
      if (decryptedLinks != null && decryptedLinks.size() > 0)       return decryptedLinks;
    }
    if (br.containsHTML("String_Node_Str")) {
      decryptedLinks=loadcontainer("String_Node_Str",param);
      if (decryptedLinks != null && decryptedLinks.size() > 0)       return decryptedLinks;
    }
    if (br.containsHTML("String_Node_Str")) {
      decryptedLinks=loadcontainer("String_Node_Str",param);
      if (decryptedLinks != null && decryptedLinks.size() > 0)       return decryptedLinks;
    }
    decryptedLinks=new ArrayList<DownloadLink>();
    String[] links=br.getRegex("String_Node_Str").getColumn(0);
    if (links == null || links.length == 0)     links=br.getRegex("String_Node_Str").getColumn(0);
    if (links == null || links.length == 0)     links=br.getRegex("String_Node_Str").getColumn(0);
    if (links == null || links.length == 0)     return null;
    progress.setRange(links.length);
    for (    String link : links) {
      br.getPage(link);
      String finallink=br.getRedirectLocation();
      if (finallink == null) {
        logger.warning("String_Node_Str" + link);
        return null;
      }
      if (!parameter.equals(finallink))       decryptedLinks.add(createDownloadlink(finallink));
      progress.increase(1);
    }
  }
 else {
    if (br.getRedirectLocation() == null) {
      logger.warning("String_Node_Str" + parameter);
      return null;
    }
    decryptedLinks.add(createDownloadlink(br.getRedirectLocation()));
  }
  return decryptedLinks;
}

Fixed version (ground truth):
public ArrayList<DownloadLink> decryptIt(CryptedLink param,ProgressController progress) throws Exception {
  ArrayList<DownloadLink> decryptedLinks=new ArrayList<DownloadLink>();
  String parameter=param.toString();
  br.setFollowRedirects(false);
  br.getPage(parameter);
  if (br.containsHTML("String_Node_Str"))   throw new DecrypterException(JDL.L("String_Node_Str","String_Node_Str"));
  if (br.containsHTML("String_Node_Str"))   throw new DecrypterException("String_Node_Str");
  if (!parameter.contains("String_Node_Str")) {
    Form capForm=new Form();
    capForm.put("String_Node_Str","String_Node_Str");
    capForm.setMethod(MethodType.POST);
    capForm.setAction(parameter);
    for (int i=0; i <= 5; i++) {
      if (br.containsHTML(PASSWORDPROTECTEDTEXT)) {
        capForm.put("String_Node_Str",Plugin.getUserInput("String_Node_Str",param));
      }
      if (br.containsHTML(RECAPTCHATEXT)) {
        PluginForHost recplug=JDUtilities.getPluginForHost("String_Node_Str");
        jd.plugins.hoster.DirectHTTP.Recaptcha rc=((DirectHTTP)recplug).getReCaptcha(br);
        rc.parse();
        rc.load();
        File cf=rc.downloadCaptcha(getLocalCaptchaFile());
        capForm.put("String_Node_Str",rc.getChallenge());
        capForm.put("String_Node_Str",getCaptchaCode(cf,param));
      }
 else       if (br.getRegex(CAPTCHAREGEX1).getMatch(0) != null) {
        capForm.put("String_Node_Str",getCaptchaCode(br.getRegex(CAPTCHAREGEX1).getMatch(0),param));
      }
 else       if (br.getRegex(CAPTCHAREGEX2).getMatch(0) != null) {
        capForm.put("String_Node_Str",getCaptchaCode(br.getRegex(CAPTCHAREGEX2).getMatch(0),param));
      }
 else       if (br.containsHTML(CAPTCHATEXT3)) {
        Browser xmlbrowser=br.cloneBrowser();
        xmlbrowser.getPage("String_Node_Str");
        capForm.put("String_Node_Str",xmlbrowser.toString().trim());
      }
      br.submitForm(capForm);
      if (br.containsHTML(RECAPTCHATEXT) || br.getRegex(CAPTCHAREGEX1).getMatch(0) != null || br.getRegex(CAPTCHAREGEX2).getMatch(0) != null || br.containsHTML(PASSWORDPROTECTEDTEXT))       continue;
      if (br.containsHTML(CAPTCHATEXT3)) {
        logger.warning("String_Node_Str" + parameter);
        return null;
      }
      break;
    }
    if (br.containsHTML(RECAPTCHATEXT) || br.getRegex(CAPTCHAREGEX1).getMatch(0) != null || br.getRegex(CAPTCHAREGEX2).getMatch(0) != null)     throw new DecrypterException(DecrypterException.CAPTCHA);
    if (br.containsHTML(PASSWORDPROTECTEDTEXT))     throw new DecrypterException(DecrypterException.PASSWORD);
    if (br.containsHTML("String_Node_Str"))     throw new DecrypterException(JDL.L("String_Node_Str","String_Node_Str"));
    if (br.containsHTML("String_Node_Str")) {
      decryptedLinks=loadcontainer("String_Node_Str",param);
      if (decryptedLinks != null && decryptedLinks.size() > 0)       return decryptedLinks;
    }
    if (br.containsHTML("String_Node_Str")) {
      decryptedLinks=loadcontainer("String_Node_Str",param);
      if (decryptedLinks != null && decryptedLinks.size() > 0)       return decryptedLinks;
    }
    if (br.containsHTML("String_Node_Str")) {
      decryptedLinks=loadcontainer("String_Node_Str",param);
      if (decryptedLinks != null && decryptedLinks.size() > 0)       return decryptedLinks;
    }
    decryptedLinks=new ArrayList<DownloadLink>();
    String[] links=br.getRegex("String_Node_Str").getColumn(0);
    if (links == null || links.length == 0)     links=br.getRegex("String_Node_Str").getColumn(0);
    if (links == null || links.length == 0)     links=br.getRegex("String_Node_Str").getColumn(0);
    if (links == null || links.length == 0)     return null;
    progress.setRange(links.length);
    for (    String link : links) {
      br.getPage(link);
      String finallink=br.getRedirectLocation();
      if (finallink == null) {
        logger.warning("String_Node_Str" + link);
        return null;
      }
      if (!parameter.equals(finallink))       decryptedLinks.add(createDownloadlink(finallink));
      progress.increase(1);
    }
  }
 else {
    if (br.getRedirectLocation() == null) {
      logger.warning("String_Node_Str" + parameter);
      return null;
    }
    decryptedLinks.add(createDownloadlink(br.getRedirectLocation()));
  }
  return decryptedLinks;
}