Program: 20945
Project: 20945
Buggy source:
@Override public void handleFree(DownloadLink downloadLink) throws Exception {
  requestFileInformation(downloadLink);
  br.setFollowRedirects(true);
  br.getPage(downloadLink.getDownloadURL());
  br.setDebug(false);
  String error=br.getRegex("String_Node_Str").getMatch(0);
  if (error != null)   throw new PluginException(LinkStatus.ERROR_FATAL,Encoding.UTF8Encode(error));
  String url=br.getRegex(Pattern.compile("String_Node_Str",Pattern.CASE_INSENSITIVE | Pattern.DOTALL)).getMatch(0);
  if (url == null)   throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
  br.getPage(url);
  if (br.getRegex("String_Node_Str").matches())   throw new PluginException(LinkStatus.ERROR_TEMPORARILY_UNAVAILABLE,20 * 60 * 1000l);
  String wait=br.getRegex("String_Node_Str").getMatch(0);
  if (wait != null && !downloadLink.getBooleanProperty("String_Node_Str",true))   throw new PluginException(LinkStatus.ERROR_IP_BLOCKED,Integer.parseInt(wait.trim()) * 60 * 1000l);
  String link=br.getRegex("String_Node_Str").getMatch(0);
  if (link == null)   throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
  br.setFollowRedirects(false);
  dl=jd.plugins.BrowserAdapter.openDownload(br,downloadLink,link,true,1);
  if (!dl.getConnection().isContentDisposition()) {
    dl.getConnection().disconnect();
    if (dl.getConnection().getContentType().contains("String_Node_Str")) {
      logger.severe("String_Node_Str");
      throw new PluginException(LinkStatus.ERROR_TEMPORARILY_UNAVAILABLE);
    }
    if (wait != null) {
      downloadLink.setProperty("String_Node_Str",false);
      throw new PluginException(LinkStatus.ERROR_RETRY);
    }
  }
  if (dl.startDownload()) {
    downloadLink.setProperty("String_Node_Str",true);
  }
}

Fixed version (ground truth):
@Override public void handleFree(DownloadLink downloadLink) throws Exception {
  requestFileInformation(downloadLink);
  br.setFollowRedirects(true);
  br.getPage(downloadLink.getDownloadURL());
  br.setDebug(false);
  String error=br.getRegex("String_Node_Str").getMatch(0);
  if (error != null)   throw new PluginException(LinkStatus.ERROR_FATAL,Encoding.UTF8Encode(error));
  String url=br.getRegex(Pattern.compile("String_Node_Str",Pattern.CASE_INSENSITIVE | Pattern.DOTALL)).getMatch(0);
  if (url == null)   throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
  br.getPage(url);
  if (br.getRegex("String_Node_Str").matches())   throw new PluginException(LinkStatus.ERROR_TEMPORARILY_UNAVAILABLE,20 * 60 * 1000l);
  if (br.containsHTML("String_Node_Str"))   throw new PluginException(LinkStatus.ERROR_HOSTER_TEMPORARILY_UNAVAILABLE,"String_Node_Str",10 * 60 * 1000l);
  String wait=br.getRegex("String_Node_Str").getMatch(0);
  if (wait != null)   throw new PluginException(LinkStatus.ERROR_IP_BLOCKED,Integer.parseInt(wait.trim()) * 60 * 1000l);
  String link=br.getRegex("String_Node_Str").getMatch(0);
  if (link == null)   throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
  br.setFollowRedirects(false);
  dl=jd.plugins.BrowserAdapter.openDownload(br,downloadLink,link,true,1);
  if (!dl.getConnection().isContentDisposition()) {
    br.followConnection();
    throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
  }
  dl.startDownload();
}