Program: 21010
Project: 21010
Buggy source:
@Override public void handleFree(DownloadLink downloadLink) throws Exception, PluginException {
  requestFileInformation(downloadLink);
  br.setFollowRedirects(true);
  Form DLForm0=br.getForm(0);
  if (DLForm0 == null)   throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFEKT);
  DLForm0.remove("String_Node_Str");
  br.submitForm(DLForm0);
  if (br.containsHTML("String_Node_Str")) {
    int minutes=0, seconds=0, hours=0;
    String tmphrs=br.getRegex("String_Node_Str").getMatch(0);
    if (tmphrs != null)     hours=Integer.parseInt(tmphrs);
    String tmpmin=br.getRegex("String_Node_Str").getMatch(0);
    if (tmpmin != null)     minutes=Integer.parseInt(tmpmin);
    String tmpsec=br.getRegex("String_Node_Str").getMatch(0);
    if (tmpsec != null)     seconds=Integer.parseInt(tmpsec);
    int waittime=((3600 * hours) + (60 * minutes) + seconds+ 1) * 1000;
    throw new PluginException(LinkStatus.ERROR_IP_BLOCKED,null,waittime);
  }
 else {
    Form DLForm1=br.getFormbyProperty("String_Node_Str","String_Node_Str");
    if (DLForm1 == null)     throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFEKT);
    String passCode=null;
    if (br.containsHTML("String_Node_Str")) {
      if (downloadLink.getStringProperty("String_Node_Str",null) == null) {
        passCode=Plugin.getUserInput("String_Node_Str",downloadLink);
      }
 else {
        passCode=downloadLink.getStringProperty("String_Node_Str",null);
      }
      DLForm1.put("String_Node_Str",passCode);
    }
    int tt=Integer.parseInt(br.getRegex("String_Node_Str").getMatch(0));
    sleep(tt * 1001,downloadLink);
    br.submitForm(DLForm1);
    if (br.containsHTML("String_Node_Str")) {
      logger.warning("String_Node_Str");
      downloadLink.setProperty("String_Node_Str",null);
      throw new PluginException(LinkStatus.ERROR_RETRY);
    }
    if (passCode != null) {
      downloadLink.setProperty("String_Node_Str",passCode);
    }
    String dllink=br.getRegex("String_Node_Str").getMatch(0);
    jd.plugins.BrowserAdapter.openDownload(br,downloadLink,dllink,true,1);
    dl.startDownload();
  }
}

Fixed version (ground truth):
@Override public void handleFree(DownloadLink downloadLink) throws Exception, PluginException {
  requestFileInformation(downloadLink);
  br.setFollowRedirects(true);
  Form DLForm0=br.getForm(0);
  if (DLForm0 == null)   throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFEKT);
  DLForm0.remove("String_Node_Str");
  br.submitForm(DLForm0);
  if (br.containsHTML("String_Node_Str")) {
    int minutes=0, seconds=0, hours=0;
    String tmphrs=br.getRegex("String_Node_Str").getMatch(0);
    if (tmphrs != null)     hours=Integer.parseInt(tmphrs);
    String tmpmin=br.getRegex("String_Node_Str").getMatch(0);
    if (tmpmin != null)     minutes=Integer.parseInt(tmpmin);
    String tmpsec=br.getRegex("String_Node_Str").getMatch(0);
    if (tmpsec != null)     seconds=Integer.parseInt(tmpsec);
    int waittime=((3600 * hours) + (60 * minutes) + seconds+ 1) * 1000;
    throw new PluginException(LinkStatus.ERROR_IP_BLOCKED,null,waittime);
  }
 else {
    Form DLForm1=br.getFormbyProperty("String_Node_Str","String_Node_Str");
    if (DLForm1 == null)     throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFEKT);
    String passCode=null;
    if (br.containsHTML("String_Node_Str")) {
      if (downloadLink.getStringProperty("String_Node_Str",null) == null) {
        passCode=Plugin.getUserInput("String_Node_Str",downloadLink);
      }
 else {
        passCode=downloadLink.getStringProperty("String_Node_Str",null);
      }
      DLForm1.put("String_Node_Str",passCode);
    }
    int tt=Integer.parseInt(br.getRegex("String_Node_Str").getMatch(0));
    sleep(tt * 1001,downloadLink);
    br.submitForm(DLForm1);
    if (br.containsHTML("String_Node_Str")) {
      logger.warning("String_Node_Str");
      downloadLink.setProperty("String_Node_Str",null);
      throw new PluginException(LinkStatus.ERROR_RETRY);
    }
    if (passCode != null) {
      downloadLink.setProperty("String_Node_Str",passCode);
    }
    String dllink=br.getRegex("String_Node_Str").getMatch(0);
    if (dllink == null)     throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFEKT);
    jd.plugins.BrowserAdapter.openDownload(br,downloadLink,dllink,true,1);
    dl.startDownload();
  }
}