Program: 20997
Project: 20997
Buggy source:
public void handleFree(DownloadLink downloadLink) throws Exception {
  requestFileInformation(downloadLink);
  br.getPage(downloadLink.getDownloadURL());
  if (br.containsHTML("String_Node_Str"))   throw new PluginException(LinkStatus.ERROR_TEMPORARILY_UNAVAILABLE,JDL.L("String_Node_Str","String_Node_Str"),15 * 60 * 1000l);
  if (br.containsHTML("String_Node_Str"))   throw new PluginException(LinkStatus.ERROR_TEMPORARILY_UNAVAILABLE,JDL.L("String_Node_Str","String_Node_Str"),15 * 60 * 1000l);
  String captchaCode=getCaptchaCode("String_Node_Str",downloadLink);
  Form form=br.getForm(1);
  String passCode=null;
  if (form.containsHTML("String_Node_Str")) {
    if (downloadLink.getStringProperty("String_Node_Str",null) == null) {
      passCode=Plugin.getUserInput(null,downloadLink);
    }
 else {
      passCode=downloadLink.getStringProperty("String_Node_Str",null);
    }
    form.put("String_Node_Str",passCode);
  }
  form.put("String_Node_Str",captchaCode);
  br.submitForm(form);
  if (br.containsHTML("String_Node_Str") || br.containsHTML("String_Node_Str")) {
    if (br.containsHTML("String_Node_Str")) {
      downloadLink.setProperty("String_Node_Str",null);
    }
    throw new PluginException(LinkStatus.ERROR_CAPTCHA);
  }
  if (br.containsHTML("String_Node_Str") || br.containsHTML("String_Node_Str")) {
    throw new PluginException(LinkStatus.ERROR_IP_BLOCKED,60 * 60 * 1000l);
  }
  if (passCode != null)   downloadLink.setProperty("String_Node_Str",passCode);
  String all=br.getRegex("String_Node_Str").getMatch(-1);
  String dec=br.getRegex("String_Node_Str").getMatch(-1);
  Context cx=Context.enter();
  Scriptable scope=cx.initStandardObjects();
  String fun="String_Node_Str" + all + "String_Node_Str"+ dec+ "String_Node_Str";
  Object result=cx.evaluateString(scope,fun,"String_Node_Str",1,null);
  String url=Context.toString(result);
  Context.exit();
  br.setFollowRedirects(true);
  dl=jd.plugins.BrowserAdapter.openDownload(br,downloadLink,url);
  dl.startDownload();
}

Fixed version (ground truth):
public void handleFree(DownloadLink downloadLink) throws Exception {
  requestFileInformation(downloadLink);
  br.setFollowRedirects(true);
  br.getPage(downloadLink.getDownloadURL());
  if (br.containsHTML("String_Node_Str"))   throw new PluginException(LinkStatus.ERROR_TEMPORARILY_UNAVAILABLE,JDL.L("String_Node_Str","String_Node_Str"),15 * 60 * 1000l);
  if (br.containsHTML("String_Node_Str"))   throw new PluginException(LinkStatus.ERROR_TEMPORARILY_UNAVAILABLE,JDL.L("String_Node_Str","String_Node_Str"),15 * 60 * 1000l);
  String captchaCode=getCaptchaCode("String_Node_Str",downloadLink);
  Form form=br.getForm(1);
  if (form == null)   throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFEKT);
  String passCode=null;
  if (form.containsHTML("String_Node_Str")) {
    if (downloadLink.getStringProperty("String_Node_Str",null) == null) {
      passCode=Plugin.getUserInput(null,downloadLink);
    }
 else {
      passCode=downloadLink.getStringProperty("String_Node_Str",null);
    }
    form.put("String_Node_Str",passCode);
  }
  form.put("String_Node_Str",captchaCode);
  br.submitForm(form);
  if (br.containsHTML("String_Node_Str") || br.containsHTML("String_Node_Str")) {
    if (br.containsHTML("String_Node_Str")) {
      downloadLink.setProperty("String_Node_Str",null);
    }
    throw new PluginException(LinkStatus.ERROR_CAPTCHA);
  }
  if (br.containsHTML("String_Node_Str") || br.containsHTML("String_Node_Str")) {
    throw new PluginException(LinkStatus.ERROR_IP_BLOCKED,60 * 60 * 1000l);
  }
  if (passCode != null)   downloadLink.setProperty("String_Node_Str",passCode);
  String all=br.getRegex("String_Node_Str").getMatch(-1);
  String dec=br.getRegex("String_Node_Str").getMatch(-1);
  Context cx=Context.enter();
  Scriptable scope=cx.initStandardObjects();
  String fun="String_Node_Str" + all + "String_Node_Str"+ dec+ "String_Node_Str";
  Object result=cx.evaluateString(scope,fun,"String_Node_Str",1,null);
  String url=Context.toString(result);
  Context.exit();
  br.setFollowRedirects(true);
  dl=jd.plugins.BrowserAdapter.openDownload(br,downloadLink,url);
  dl.startDownload();
}