nus-yam/ex-repair huggingface dataset:
Program: 20853
Project: 20853
Buggy source:
@Override public void handleFree(DownloadLink link) throws Exception, PluginException {
  requestFileInformation(link);
  br.setFollowRedirects(false);
  br.getPage(link.getDownloadURL().replace("String_Node_Str","String_Node_Str"));
  if (br.getRedirectLocation() != null && br.getRedirectLocation().contains("String_Node_Str"))   throw new PluginException(LinkStatus.ERROR_IP_BLOCKED,10 * 60 * 1000l);
  PluginForHost recplug=JDUtilities.getPluginForHost("String_Node_Str");
  jd.plugins.hoster.DirectHTTP.Recaptcha rc=((DirectHTTP)recplug).getReCaptcha(br);
  for (int i=0; i <= 5; i++) {
    rc.parse();
    rc.load();
    File cf=rc.downloadCaptcha(getLocalCaptchaFile());
    String c=getCaptchaCode(cf,link);
    rc.setCode(c);
    if (br.containsHTML("String_Node_Str"))     continue;
    break;
  }
  if (br.containsHTML("String_Node_Str"))   throw new PluginException(LinkStatus.ERROR_CAPTCHA);
  String dllink=br.getRedirectLocation();
  if (dllink == null)   throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
  dl=jd.plugins.BrowserAdapter.openDownload(br,link,dllink,false,1);
  dl.startDownload();
}

Fixed version (ground truth):
@Override public void handleFree(DownloadLink link) throws Exception, PluginException {
  requestFileInformation(link);
  br.setFollowRedirects(false);
  br.getPage(link.getDownloadURL().replace("String_Node_Str","String_Node_Str"));
  br.setFollowRedirects(true);
  br.getPage(link.getDownloadURL().replace("String_Node_Str","String_Node_Str"));
  br.setFollowRedirects(false);
  if (br.getRedirectLocation() != null && br.getRedirectLocation().contains("String_Node_Str"))   throw new PluginException(LinkStatus.ERROR_IP_BLOCKED,10 * 60 * 1000l);
  PluginForHost recplug=JDUtilities.getPluginForHost("String_Node_Str");
  jd.plugins.hoster.DirectHTTP.Recaptcha rc=((DirectHTTP)recplug).getReCaptcha(br);
  for (int i=0; i <= 5; i++) {
    rc.parse();
    rc.load();
    File cf=rc.downloadCaptcha(getLocalCaptchaFile());
    String c=getCaptchaCode(cf,link);
    rc.setCode(c);
    if (br.containsHTML("String_Node_Str"))     continue;
    break;
  }
  if (br.containsHTML("String_Node_Str"))   throw new PluginException(LinkStatus.ERROR_CAPTCHA);
  String dllink=br.getRedirectLocation();
  if (dllink == null)   throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
  dl=jd.plugins.BrowserAdapter.openDownload(br,link,dllink,false,1);
  dl.startDownload();
}
Program: 20854
Project: 20854
Buggy source:
public void correctDownloadLink(DownloadLink link){
  link.setUrlDownload(link.getDownloadURL().replace("String_Node_Str","String_Node_Str"));
  link.setUrlDownload(link.getDownloadURL().replace("String_Node_Str","String_Node_Str"));
}

Fixed version (ground truth):
public void correctDownloadLink(DownloadLink link){
  link.setUrlDownload(link.getDownloadURL().replace("String_Node_Str","String_Node_Str"));
  link.setUrlDownload(link.getDownloadURL().replace("String_Node_Str","String_Node_Str"));
  link.setUrlDownload(link.getDownloadURL().replace("String_Node_Str","String_Node_Str"));
}
Program: 20855
Project: 20855
Buggy source:
@Override public AvailableStatus requestFileInformation(DownloadLink link) throws IOException, PluginException {
  this.setBrowserExclusive();
  br.setFollowRedirects(true);
  br.setCustomCharset("String_Node_Str");
  br.getPage(link.getDownloadURL());
  if (br.containsHTML("String_Node_Str"))   throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
  String filename=br.getRegex("String_Node_Str").getMatch(0);
  if (filename == null)   filename=br.getRegex("String_Node_Str").getMatch(1);
  if (filename == null)   throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
  link.setName(filename.trim());
  String filesize=br.getRegex("String_Node_Str").getMatch(0);
  if (filesize != null) {
    filesize=filesize.trim();
    filesize=filesize.replaceAll("String_Node_Str","String_Node_Str");
    filesize=filesize.replaceAll("String_Node_Str","String_Node_Str");
    filesize=filesize.replaceAll("String_Node_Str","String_Node_Str");
    filesize=filesize.replace("String_Node_Str","String_Node_Str");
    filesize=filesize + "String_Node_Str";
    link.setDownloadSize(Regex.getSize(filesize));
  }
  return AvailableStatus.TRUE;
}

Fixed version (ground truth):
@Override public AvailableStatus requestFileInformation(DownloadLink link) throws IOException, PluginException {
  if (link.getDownloadURL().contains("String_Node_Str")) {
    link.setUrlDownload(link.getDownloadURL().replace("String_Node_Str","String_Node_Str"));
  }
  this.setBrowserExclusive();
  br.setFollowRedirects(true);
  br.setCustomCharset("String_Node_Str");
  br.getPage(link.getDownloadURL());
  if (br.containsHTML("String_Node_Str"))   throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
  String filename=br.getRegex("String_Node_Str").getMatch(0);
  if (filename == null)   filename=br.getRegex("String_Node_Str").getMatch(1);
  if (filename == null)   throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
  link.setFinalFileName(filename.trim());
  String filesize=br.getRegex("String_Node_Str").getMatch(0);
  if (filesize != null) {
    filesize=filesize.trim();
    filesize=filesize.replaceAll("String_Node_Str","String_Node_Str");
    filesize=filesize.replaceAll("String_Node_Str","String_Node_Str");
    filesize=filesize.replaceAll("String_Node_Str","String_Node_Str");
    filesize=filesize.replace("String_Node_Str","String_Node_Str");
    filesize=filesize + "String_Node_Str";
    link.setDownloadSize(Regex.getSize(filesize));
  }
  return AvailableStatus.TRUE;
}
Program: 20856
Project: 20856
Buggy source:
@Override public void handleFree(DownloadLink downloadLink) throws Exception {
  requestFileInformation(downloadLink);
  String linkurl=Encoding.htmlDecode(new Regex(br,Pattern.compile("String_Node_Str",Pattern.CASE_INSENSITIVE)).getMatch(0));
  if (linkurl == null)   throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
  br.setFollowRedirects(true);
  br.setDebug(true);
  dl=jd.plugins.BrowserAdapter.openDownload(br,downloadLink,linkurl,true,1);
  URLConnectionAdapter con=dl.getConnection();
  if (con.getContentType().contains("String_Node_Str")) {
    int count=downloadLink.getIntegerProperty("String_Node_Str",0);
    count++;
    downloadLink.setProperty("String_Node_Str",count);
    con.disconnect();
    if (count > 6) {
      logger.info("String_Node_Str");
      throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
    }
    throw new PluginException(LinkStatus.ERROR_TEMPORARILY_UNAVAILABLE,count * 600 * 1000l);
  }
  if (!con.isContentDisposition()) {
    br.followConnection();
    throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
  }
  dl.startDownload();
}

Fixed version (ground truth):
@Override public void handleFree(DownloadLink downloadLink) throws Exception {
  requestFileInformation(downloadLink);
  String linkurl=Encoding.htmlDecode(new Regex(br,Pattern.compile("String_Node_Str",Pattern.CASE_INSENSITIVE)).getMatch(0));
  if (linkurl == null)   linkurl=Encoding.htmlDecode(new Regex(br,Pattern.compile("String_Node_Str",Pattern.CASE_INSENSITIVE)).getMatch(0));
  if (linkurl == null)   throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
  br.setFollowRedirects(true);
  br.setDebug(true);
  dl=jd.plugins.BrowserAdapter.openDownload(br,downloadLink,linkurl,"String_Node_Str",true,1);
  URLConnectionAdapter con=dl.getConnection();
  if (con.getContentType().contains("String_Node_Str")) {
    int count=downloadLink.getIntegerProperty("String_Node_Str",0);
    count++;
    downloadLink.setProperty("String_Node_Str",count);
    con.disconnect();
    if (count > 6) {
      logger.info("String_Node_Str");
      throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
    }
    throw new PluginException(LinkStatus.ERROR_TEMPORARILY_UNAVAILABLE,count * 600 * 1000l);
  }
  if (!con.isContentDisposition()) {
    br.followConnection();
    throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
  }
  dl.startDownload();
}
Program: 20857
Project: 20857
Buggy source:
@Override public AvailableStatus requestFileInformation(DownloadLink downloadLink) throws IOException, PluginException {
  this.setBrowserExclusive();
  br.setFollowRedirects(false);
  br.getPage(downloadLink.getDownloadURL());
  if (br.getRedirectLocation() != null)   throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
  String filename=br.getRegex("String_Node_Str").getMatch(0);
  if (filename == null)   filename=br.getRegex("String_Node_Str").getMatch(0);
  dllink=br.getRegex("String_Node_Str").getMatch(2);
  if (dllink == null)   dllink=br.getRegex("String_Node_Str").getMatch(0);
  if (filename == null || dllink == null)   throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
  filename=filename.trim().replace("String_Node_Str","String_Node_Str");
  downloadLink.setFinalFileName(filename + "String_Node_Str");
  Browser br2=br.cloneBrowser();
  br2.setFollowRedirects(true);
  URLConnectionAdapter con=br2.openGetConnection(dllink);
  if (!con.getContentType().contains("String_Node_Str"))   downloadLink.setDownloadSize(con.getLongContentLength());
 else   throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
  return AvailableStatus.TRUE;
}

Fixed version (ground truth):
@Override public AvailableStatus requestFileInformation(DownloadLink downloadLink) throws IOException, PluginException {
  this.setBrowserExclusive();
  br.setFollowRedirects(false);
  br.getPage(downloadLink.getDownloadURL());
  if (br.getRedirectLocation() != null)   throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
  String filename=br.getRegex("String_Node_Str").getMatch(0);
  if (filename == null)   filename=br.getRegex("String_Node_Str").getMatch(0);
  dllink=br.getRegex("String_Node_Str").getMatch(1);
  if (dllink == null) {
    dllink=br.getRegex("String_Node_Str").getMatch(0);
    if (dllink == null) {
      dllink=br.getRegex("String_Node_Str").getMatch(2);
      if (dllink == null)       dllink=br.getRegex("String_Node_Str").getMatch(0);
    }
  }
  if (filename == null || dllink == null)   throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
  filename=filename.trim().replaceAll("String_Node_Str","String_Node_Str");
  if (!dllink.endsWith("String_Node_Str"))   downloadLink.setFinalFileName(filename + "String_Node_Str");
 else   downloadLink.setFinalFileName(filename + "String_Node_Str");
  Browser br2=br.cloneBrowser();
  br2.setFollowRedirects(true);
  URLConnectionAdapter con=br2.openGetConnection(dllink);
  if (!con.getContentType().contains("String_Node_Str"))   downloadLink.setDownloadSize(con.getLongContentLength());
 else   throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
  return AvailableStatus.TRUE;
}
Program: 20858
Project: 20858
Buggy source:
@Override public void handlePremium(DownloadLink downloadLink,Account account) throws Exception {
  requestFileInformation(downloadLink);
  Form form=br.getForm(0);
  if (form == null)   throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
  form.put("String_Node_Str",Encoding.urlEncode(account.getPass()));
  br.submitForm(form);
  String trafficLeft=br.getRegex("String_Node_Str").getMatch(0);
  if (trafficLeft != null) {
    AccountInfo ai=account.getAccountInfo();
    ai.setTrafficLeft(trafficLeft);
    ai.setStatus("String_Node_Str");
  }
  String url=Encoding.htmlDecode(br.getRegex(Pattern.compile("String_Node_Str",Pattern.CASE_INSENSITIVE)).getMatch(1));
  if (url == null)   url=br.getRegex("String_Node_Str").getMatch(0);
  if (url == null && br.containsHTML("String_Node_Str")) {
    logger.info("String_Node_Str");
    throw new PluginException(LinkStatus.ERROR_PREMIUM,PluginException.VALUE_ID_PREMIUM_DISABLE);
  }
  if (url == null)   throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
  sleep(5000,downloadLink);
  dl=jd.plugins.BrowserAdapter.openDownload(br,downloadLink,url,true,0);
  if (!dl.getConnection().isContentDisposition()) {
    br.followConnection();
    if (br.containsHTML("String_Node_Str"))     throw new PluginException(LinkStatus.ERROR_TEMPORARILY_UNAVAILABLE,"String_Node_Str",2 * 1000l);
    throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
  }
  dl.startDownload();
}

Fixed version (ground truth):
@Override public void handlePremium(DownloadLink downloadLink,Account account) throws Exception {
  requestFileInformation(downloadLink);
  Form form=br.getForm(0);
  if (form == null)   throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
  form.put("String_Node_Str",Encoding.urlEncode(account.getPass()));
  br.submitForm(form);
  String url=Encoding.htmlDecode(br.getRegex(Pattern.compile("String_Node_Str",Pattern.CASE_INSENSITIVE)).getMatch(1));
  if (url == null)   url=br.getRegex("String_Node_Str").getMatch(0);
  if (url == null && br.containsHTML("String_Node_Str")) {
    logger.info("String_Node_Str");
    throw new PluginException(LinkStatus.ERROR_PREMIUM,PluginException.VALUE_ID_PREMIUM_DISABLE);
  }
  if (url == null)   throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
  sleep(5000,downloadLink);
  dl=jd.plugins.BrowserAdapter.openDownload(br,downloadLink,url,true,0);
  if (!dl.getConnection().isContentDisposition()) {
    br.followConnection();
    if (br.containsHTML("String_Node_Str"))     throw new PluginException(LinkStatus.ERROR_TEMPORARILY_UNAVAILABLE,"String_Node_Str",2 * 1000l);
    throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
  }
  dl.startDownload();
}
Program: 20859
Project: 20859
Buggy source:
public ArrayList<DownloadLink> decryptIt(CryptedLink param,ProgressController progress) throws Exception {
  ArrayList<DownloadLink> decryptedLinks=new ArrayList<DownloadLink>();
  FilePackage fp=FilePackage.getInstance();
  String parameter=param.toString();
  br.getPage(parameter);
  String[] images=br.getRegex("String_Node_Str").getColumn(0);
  if (br.containsHTML("String_Node_Str")) {
    fp.setName("String_Node_Str");
    br.getPage("String_Node_Str");
    String image404=br.getRegex("String_Node_Str").getMatch(0);
    DownloadLink dl=createDownloadlink(image404);
    dl.setAvailableStatus(AvailableStatus.TRUE);
    dl.setFilePackage(fp);
    decryptedLinks.add(dl);
  }
 else   if (images.length == 0) {
    return null;
  }
 else {
    String domain="String_Node_Str";
    String cat=br.getRegex("String_Node_Str").getMatch(0);
    String date=new Date().toString();
    fp.setName(domain + "String_Node_Str" + cat+ "String_Node_Str"+ date);
    for (    String image : images) {
      DownloadLink dl=createDownloadlink(image);
      dl.setAvailableStatus(AvailableStatus.TRUE);
      dl.setFilePackage(fp);
      decryptedLinks.add(dl);
    }
  }
  return decryptedLinks;
}

Fixed version (ground truth):
public ArrayList<DownloadLink> decryptIt(CryptedLink param,ProgressController progress) throws Exception {
  ArrayList<DownloadLink> decryptedLinks=new ArrayList<DownloadLink>();
  FilePackage fp=FilePackage.getInstance();
  String parameter=param.toString();
  br.getPage(parameter);
  if (parameter.matches("String_Node_Str")) {
    String[] threads=br.getRegex("String_Node_Str").getColumn(0);
    for (    String thread : threads) {
      decryptedLinks.add(createDownloadlink(parameter + "String_Node_Str" + thread));
    }
  }
 else {
    String[] images=br.getRegex("String_Node_Str").getColumn(0);
    if (br.containsHTML("String_Node_Str")) {
      fp.setName("String_Node_Str");
      br.getPage("String_Node_Str");
      String image404=br.getRegex("String_Node_Str").getMatch(0);
      DownloadLink dl=createDownloadlink(image404);
      dl.setAvailableStatus(AvailableStatus.TRUE);
      dl.setFilePackage(fp);
      decryptedLinks.add(dl);
    }
 else     if (images.length == 0) {
      return null;
    }
 else {
      String domain="String_Node_Str";
      String cat=br.getRegex("String_Node_Str").getMatch(0).replace("String_Node_Str","String_Node_Str");
      String date=new Date().toString();
      fp.setName(domain + "String_Node_Str" + cat+ "String_Node_Str"+ date);
      for (      String image : images) {
        DownloadLink dl=createDownloadlink(image);
        dl.setAvailableStatus(AvailableStatus.TRUE);
        dl.setFilePackage(fp);
        decryptedLinks.add(dl);
      }
    }
  }
  return decryptedLinks;
}
Program: 20860
Project: 20860
Buggy source:
/** 
 * Ermittelt über die Plugins alle Passenden Links und gibt diese in einem ArrayList zurück
 * @return Link-ArrayList
 */
public ArrayList<DownloadLink> findLinks(){
  ArrayList<DownloadLink> ret=quickHosterCheck(data);
  foundPasswords.addAll(HTMLParser.findPasswords(data));
  if (ret != null && ret.size() == 1) {
    if (!ret.get(0).getPlugin().getWrapper().isEnabled() || LinkGrabberController.isFiltered(ret.get(0))) {
      ret.clear();
    }
 else {
      ret.get(0).addSourcePluginPasswordList(foundPasswords);
      return ret;
    }
  }
  data=HTMLEntities.unhtmlentities(data);
  data=data.replaceAll("String_Node_Str","String_Node_Str");
  ret=findLinksIntern();
  data=Encoding.urlDecode(data,true);
  ret.addAll(findLinksIntern());
  if (!filterNormalHTTP) {
    data=data.replaceAll("String_Node_Str","String_Node_Str");
    data=data.replaceAll("String_Node_Str","String_Node_Str");
    data=data.replaceAll("String_Node_Str","String_Node_Str");
    ret.addAll(findLinksIntern());
    data=data.replaceAll("String_Node_Str","String_Node_Str");
    data=data.replaceAll("String_Node_Str","String_Node_Str");
  }
  for (  final DownloadLink link : ret) {
    link.addSourcePluginPasswordList(foundPasswords);
  }
  return ret;
}

Fixed version (ground truth):
/** 
 * Ermittelt über die Plugins alle Passenden Links und gibt diese in einem ArrayList zurück
 * @return Link-ArrayList
 */
public ArrayList<DownloadLink> findLinks(){
  ArrayList<DownloadLink> ret=quickHosterCheck(data);
  foundPasswords.addAll(HTMLParser.findPasswords(data));
  if (ret != null && ret.size() == 1 && ret.get(0).getPlugin() != null) {
    if (!ret.get(0).getPlugin().getWrapper().isEnabled() || LinkGrabberController.isFiltered(ret.get(0))) {
      ret.clear();
    }
 else {
      ret.get(0).addSourcePluginPasswordList(foundPasswords);
      return ret;
    }
  }
  data=HTMLEntities.unhtmlentities(data);
  data=data.replaceAll("String_Node_Str","String_Node_Str");
  ret=findLinksIntern();
  data=Encoding.urlDecode(data,true);
  ret.addAll(findLinksIntern());
  if (!filterNormalHTTP) {
    data=data.replaceAll("String_Node_Str","String_Node_Str");
    data=data.replaceAll("String_Node_Str","String_Node_Str");
    data=data.replaceAll("String_Node_Str","String_Node_Str");
    ret.addAll(findLinksIntern());
    data=data.replaceAll("String_Node_Str","String_Node_Str");
    data=data.replaceAll("String_Node_Str","String_Node_Str");
  }
  for (  final DownloadLink link : ret) {
    link.addSourcePluginPasswordList(foundPasswords);
  }
  return ret;
}
Program: 20864
Project: 20864
Buggy source:
/** 
 * Gibt alle Downloadlinks die zu dem übergebenem Hosterplugin gehören zurück.
 * @param pluginForHost
 */
public ArrayList<DownloadLink> getDownloadLinks(PluginForHost pluginForHost){
  ArrayList<DownloadLink> al=new ArrayList<DownloadLink>();
  ArrayList<FilePackage> packages=JDUtilities.getDownloadController().getPackages();
synchronized (packages) {
    for (    FilePackage fp : packages) {
      for (      DownloadLink nextDownloadLink : fp.getDownloadLinkList()) {
        if (nextDownloadLink.getPlugin().getClass() == pluginForHost.getClass())         al.add(nextDownloadLink);
      }
    }
  }
  return al;
}

Fixed version (ground truth):
/** 
 * Gibt alle Downloadlinks die zu dem übergebenem Hosterplugin gehören zurück.
 * @param pluginForHost
 */
public ArrayList<DownloadLink> getDownloadLinks(PluginForHost pluginForHost){
  ArrayList<DownloadLink> al=new ArrayList<DownloadLink>();
  ArrayList<FilePackage> packages=JDUtilities.getDownloadController().getPackages();
synchronized (packages) {
    for (    FilePackage fp : packages) {
      for (      DownloadLink nextDownloadLink : fp.getDownloadLinkList()) {
        if (nextDownloadLink.getPlugin() == null)         continue;
        if (nextDownloadLink.getPlugin().getClass() == pluginForHost.getClass())         al.add(nextDownloadLink);
      }
    }
  }
  return al;
}
Program: 20866
Project: 20866
Buggy source:
private void checkHosterList(ArrayList<DownloadLink> hosterList){
  if (hosterList.size() != 0) {
    DownloadLink link=hosterList.get(0);
    long timer=System.currentTimeMillis();
    boolean ret=link.getPlugin().getWrapper().getNewPluginInstance().checkLinks(hosterList.toArray(new DownloadLink[]{}));
    if (!ret) {
      for (int i=0; i < hosterList.size(); i++) {
        link=hosterList.get(i);
        if (!checkRunning)         return;
        if (!link.getBooleanProperty("String_Node_Str",false)) {
          link.isAvailable();
          getBroadcaster().fireEvent(new LinkCheckEvent(this,LinkCheckEvent.AFTER_CHECK,link));
        }
        pc.increase(1);
      }
    }
 else {
      long reqtime=System.currentTimeMillis() - timer;
      for (      DownloadLink d : hosterList) {
        d.setRequestTime(reqtime);
      }
      getBroadcaster().fireEvent(new LinkCheckEvent(this,LinkCheckEvent.AFTER_CHECK,hosterList));
      pc.increase(hosterList.size());
    }
  }
  DownloadController.getInstance().fireDownloadLinkUpdate(hosterList);
}

Fixed version (ground truth):
private void checkHosterList(ArrayList<DownloadLink> hosterList){
  if (hosterList.size() != 0) {
    DownloadLink link=hosterList.get(0);
    long timer=System.currentTimeMillis();
    boolean ret=link.getPlugin() == null ? false : link.getPlugin().getWrapper().getNewPluginInstance().checkLinks(hosterList.toArray(new DownloadLink[]{}));
    if (!ret) {
      for (int i=0; i < hosterList.size(); i++) {
        link=hosterList.get(i);
        if (!checkRunning)         return;
        if (!link.getBooleanProperty("String_Node_Str",false)) {
          link.isAvailable();
          getBroadcaster().fireEvent(new LinkCheckEvent(this,LinkCheckEvent.AFTER_CHECK,link));
        }
        pc.increase(1);
      }
    }
 else {
      long reqtime=System.currentTimeMillis() - timer;
      for (      DownloadLink d : hosterList) {
        d.setRequestTime(reqtime);
      }
      getBroadcaster().fireEvent(new LinkCheckEvent(this,LinkCheckEvent.AFTER_CHECK,hosterList));
      pc.increase(hosterList.size());
    }
  }
  DownloadController.getInstance().fireDownloadLinkUpdate(hosterList);
}
Program: 20867
Project: 20867
Buggy source:
@Override public void run(){
  try {
    PluginForHost plugin;
    linkStatus.setStatusText(null);
    linkStatus.setErrorMessage(null);
    linkStatus.resetWaitTime();
    logger.info("String_Node_Str" + downloadLink.getName());
    currentPlugin=plugin=downloadLink.getPlugin();
    fireControlEvent(new ControlEvent(currentPlugin,ControlEvent.CONTROL_PLUGIN_ACTIVE,this));
    if (downloadLink.getDownloadURL() == null) {
      downloadLink.getLinkStatus().setStatusText(JDL.L("String_Node_Str","String_Node_Str"));
      downloadLink.getLinkStatus().setErrorMessage(JDL.L("String_Node_Str","String_Node_Str"));
      downloadLink.setEnabled(false);
      fireControlEvent(new ControlEvent(currentPlugin,ControlEvent.CONTROL_PLUGIN_INACTIVE,this));
      return;
    }
synchronized (DUPELOCK) {
      if (DownloadInterface.preDownloadCheckFailed(downloadLink)) {
        onErrorLinkBlock(downloadLink,currentPlugin);
        fireControlEvent(new ControlEvent(currentPlugin,ControlEvent.CONTROL_PLUGIN_INACTIVE,this));
        return;
      }
      linkStatus.setInProgress(true);
    }
    handlePlugin();
    fireControlEvent(new ControlEvent(currentPlugin,ControlEvent.CONTROL_PLUGIN_INACTIVE,this));
    plugin.clean();
    downloadLink.requestGuiUpdate();
  }
  finally {
    linkStatus.setInProgress(false);
    linkStatus.setActive(false);
    downloadLink.setDownloadLinkController(null);
    downloadLink.setDownloadInstance(null);
  }
}

Fixed version (ground truth):
@Override public void run(){
  try {
    PluginForHost plugin;
    linkStatus.setStatusText(null);
    linkStatus.setErrorMessage(null);
    linkStatus.resetWaitTime();
    logger.info("String_Node_Str" + downloadLink.getName());
    currentPlugin=plugin=downloadLink.getPlugin();
    if (currentPlugin != null) {
      fireControlEvent(new ControlEvent(currentPlugin,ControlEvent.CONTROL_PLUGIN_ACTIVE,this));
      if (downloadLink.getDownloadURL() == null) {
        downloadLink.getLinkStatus().setStatusText(JDL.L("String_Node_Str","String_Node_Str"));
        downloadLink.getLinkStatus().setErrorMessage(JDL.L("String_Node_Str","String_Node_Str"));
        downloadLink.setEnabled(false);
        fireControlEvent(new ControlEvent(currentPlugin,ControlEvent.CONTROL_PLUGIN_INACTIVE,this));
        return;
      }
synchronized (DUPELOCK) {
        if (DownloadInterface.preDownloadCheckFailed(downloadLink)) {
          onErrorLinkBlock(downloadLink,currentPlugin);
          fireControlEvent(new ControlEvent(currentPlugin,ControlEvent.CONTROL_PLUGIN_INACTIVE,this));
          return;
        }
        linkStatus.setInProgress(true);
      }
      handlePlugin();
      fireControlEvent(new ControlEvent(currentPlugin,ControlEvent.CONTROL_PLUGIN_INACTIVE,this));
      plugin.clean();
    }
    downloadLink.requestGuiUpdate();
  }
  finally {
    linkStatus.setInProgress(false);
    linkStatus.setActive(false);
    downloadLink.setDownloadLinkController(null);
    downloadLink.setDownloadInstance(null);
  }
}
Program: 20868
Project: 20868
Buggy source:
private void onErrorPluginDefect(DownloadLink downloadLink2,PluginForHost currentPlugin2){
  logger.warning("String_Node_Str" + currentPlugin.getHost() + "String_Node_Str"+ downloadLink.getPlugin().getVersion()+ "String_Node_Str");
  if (downloadLink2.getLinkStatus().getErrorMessage() != null)   logger.warning(downloadLink2.getLinkStatus().getErrorMessage());
  try {
    logger.finest(currentPlugin2.getBrowser().getRequest().getHttpConnection() + "String_Node_Str");
  }
 catch (  Exception e) {
    JDLogger.exception(e);
  }
  try {
    logger.finest(currentPlugin2.getBrowser() + "String_Node_Str");
  }
 catch (  Exception e) {
    JDLogger.exception(e);
  }
  downloadLink2.getLinkStatus().setErrorMessage(JDL.L("String_Node_Str","String_Node_Str"));
  downloadLink.requestGuiUpdate();
}

Fixed version (ground truth):
private void onErrorPluginDefect(DownloadLink downloadLink2,PluginForHost currentPlugin2){
  String rev=downloadLink.getPlugin() == null ? "String_Node_Str" : downloadLink.getPlugin().getVersion();
  logger.warning("String_Node_Str" + currentPlugin.getHost() + "String_Node_Str"+ rev+ "String_Node_Str");
  if (downloadLink2.getLinkStatus().getErrorMessage() != null)   logger.warning(downloadLink2.getLinkStatus().getErrorMessage());
  try {
    logger.finest(currentPlugin2.getBrowser().getRequest().getHttpConnection() + "String_Node_Str");
  }
 catch (  Exception e) {
    JDLogger.exception(e);
  }
  try {
    logger.finest(currentPlugin2.getBrowser() + "String_Node_Str");
  }
 catch (  Exception e) {
    JDLogger.exception(e);
  }
  downloadLink2.getLinkStatus().setErrorMessage(JDL.L("String_Node_Str","String_Node_Str"));
  downloadLink.requestGuiUpdate();
}
Program: 20870
Project: 20870
Buggy source:
/** 
 * reset ipblocked links 
 */
private static void resetAllLinks(){
  final ArrayList<FilePackage> packages=JDUtilities.getController().getPackages();
  DownloadWatchDog.getInstance().resetIPBlockWaittime(null);
synchronized (packages) {
    for (    final FilePackage fp : packages) {
      for (      final DownloadLink nextDownloadLink : fp.getDownloadLinkList()) {
        if (nextDownloadLink.getPlugin() != null && nextDownloadLink.getLinkStatus().hasStatus(LinkStatus.ERROR_IP_BLOCKED)) {
          nextDownloadLink.getLinkStatus().setStatus(LinkStatus.TODO);
          nextDownloadLink.getLinkStatus().resetWaitTime();
        }
      }
    }
  }
}

Fixed version (ground truth):
/** 
 * reset ipblocked links 
 */
private static void resetAllLinks(){
  final ArrayList<FilePackage> packages=JDUtilities.getController().getPackages();
  DownloadWatchDog.getInstance().resetIPBlockWaittime(null);
synchronized (packages) {
    for (    final FilePackage fp : packages) {
      for (      final DownloadLink nextDownloadLink : fp.getDownloadLinkList()) {
        if (nextDownloadLink.getLinkStatus().hasStatus(LinkStatus.ERROR_IP_BLOCKED)) {
          nextDownloadLink.getLinkStatus().setStatus(LinkStatus.TODO);
          nextDownloadLink.getLinkStatus().resetWaitTime();
        }
      }
    }
  }
}
Program: 20871
Project: 20871
Buggy source:
@Override public Component myTableCellRendererComponent(JDTableModel table,Object value,boolean isSelected,boolean hasFocus,int row,int column){
  if (value instanceof LinkGrabberFilePackage) {
    fp=(LinkGrabberFilePackage)value;
    jlr.setText(fp.getHoster());
    jlr.setIcon(null);
    jlr.setToolTipText(strLoadingFrom + fp.getHoster());
  }
 else {
    dLink=(DownloadLink)value;
    jlr.setToolTipText(strLoadingFrom + dLink.getPlugin().getHost());
    jlr.setText(dLink.getPlugin().getHost() + dLink.getPlugin().getSessionInfo());
    jlr.setIcon(dLink.getPlugin().getHosterIconScaled());
  }
  return jlr;
}

Fixed version (ground truth):
@Override public Component myTableCellRendererComponent(JDTableModel table,Object value,boolean isSelected,boolean hasFocus,int row,int column){
  if (value instanceof LinkGrabberFilePackage) {
    fp=(LinkGrabberFilePackage)value;
    jlr.setText(fp.getHoster());
    jlr.setIcon(null);
    jlr.setToolTipText(strLoadingFrom + fp.getHoster());
  }
 else {
    dLink=(DownloadLink)value;
    if (dLink.getPlugin() != null) {
      jlr.setToolTipText(strLoadingFrom + dLink.getPlugin().getHost());
      jlr.setText(dLink.getPlugin().getHost() + dLink.getPlugin().getSessionInfo());
      jlr.setIcon(dLink.getPlugin().getHosterIconScaled());
    }
 else {
      jlr.setToolTipText("String_Node_Str");
      jlr.setText("String_Node_Str");
      jlr.setIcon(null);
    }
  }
  return jlr;
}
Program: 20872
Project: 20872
Buggy source:
public void actionPerformed(ActionEvent e){
  for (  LinkGrabberFilePackage packagee : packages) {
synchronized (packagee) {
      ArrayList<DownloadLink> links=new ArrayList<DownloadLink>(packagee.getDownloadLinks());
      Set<String> hosts=DownloadLink.getHosterList(links);
      for (      String host : hosts) {
        LinkGrabberFilePackage nfp=new LinkGrabberFilePackage(packagee.getName());
        nfp.setDownloadDirectory(packagee.getDownloadDirectory());
        nfp.setPassword(packagee.getPassword());
        nfp.setPostProcessing(packagee.isPostProcessing());
        nfp.setUseSubDir(packagee.useSubDir());
        nfp.setComment(packagee.getComment());
        for (        DownloadLink dl : links) {
          if (dl.getPlugin().getHost().equalsIgnoreCase(host)) {
            nfp.add(dl);
          }
        }
        LinkGrabberController.getInstance().addPackage(nfp);
      }
    }
  }
}

Fixed version (ground truth):
public void actionPerformed(ActionEvent e){
  for (  LinkGrabberFilePackage packagee : packages) {
synchronized (packagee) {
      ArrayList<DownloadLink> links=new ArrayList<DownloadLink>(packagee.getDownloadLinks());
      Set<String> hosts=DownloadLink.getHosterList(links);
      for (      String host : hosts) {
        LinkGrabberFilePackage nfp=new LinkGrabberFilePackage(packagee.getName());
        nfp.setDownloadDirectory(packagee.getDownloadDirectory());
        nfp.setPassword(packagee.getPassword());
        nfp.setPostProcessing(packagee.isPostProcessing());
        nfp.setUseSubDir(packagee.useSubDir());
        nfp.setComment(packagee.getComment());
        for (        DownloadLink dl : links) {
          if (dl.getHost().equalsIgnoreCase(host)) {
            nfp.add(dl);
          }
        }
        LinkGrabberController.getInstance().addPackage(nfp);
      }
    }
  }
}
Program: 20873
Project: 20873
Buggy source:
public static DownloadInterface openDownload(Browser br,DownloadLink downloadLink,Form form) throws Exception {
  DownloadInterface dl=RAFDownload.download(downloadLink,br.createRequest(form));
  try {
    dl.connect(br);
  }
 catch (  PluginException e) {
    if (e.getValue() == DownloadInterface.ERROR_REDIRECTED) {
      int maxRedirects=10;
      while (maxRedirects-- > 0) {
        dl=RAFDownload.download(downloadLink,br.createGetRequestRedirectedRequest(dl.getRequest()));
        try {
          dl.connect(br);
          break;
        }
 catch (        PluginException e2) {
          continue;
        }
      }
      if (maxRedirects <= 0) {
        throw new PluginException(LinkStatus.ERROR_FATAL,"String_Node_Str");
      }
    }
  }
  if (downloadLink.getPlugin().getBrowser() == br) {
    downloadLink.getPlugin().setDownloadInterface(dl);
  }
  return dl;
}

Fixed version (ground truth):
public static DownloadInterface openDownload(Browser br,DownloadLink downloadLink,Form form) throws Exception {
  if (downloadLink.getPlugin() == null)   return null;
  DownloadInterface dl=RAFDownload.download(downloadLink,br.createRequest(form));
  try {
    dl.connect(br);
  }
 catch (  PluginException e) {
    if (e.getValue() == DownloadInterface.ERROR_REDIRECTED) {
      int maxRedirects=10;
      while (maxRedirects-- > 0) {
        dl=RAFDownload.download(downloadLink,br.createGetRequestRedirectedRequest(dl.getRequest()));
        try {
          dl.connect(br);
          break;
        }
 catch (        PluginException e2) {
          continue;
        }
      }
      if (maxRedirects <= 0) {
        throw new PluginException(LinkStatus.ERROR_FATAL,"String_Node_Str");
      }
    }
  }
  if (downloadLink.getPlugin().getBrowser() == br) {
    downloadLink.getPlugin().setDownloadInterface(dl);
  }
  return dl;
}
Program: 20878
Project: 20878
Buggy source:
@Override public AvailableStatus requestFileInformation(DownloadLink link) throws IOException, PluginException {
  this.setBrowserExclusive();
  br.setCookie("String_Node_Str","String_Node_Str","String_Node_Str");
  br.getPage(link.getDownloadURL());
  doSomething();
  if (brbefore.contains("String_Node_Str"))   throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
  if (brbefore.contains("String_Node_Str"))   throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
  if (brbefore.contains("String_Node_Str"))   throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
  String filename=new Regex(brbefore,"String_Node_Str").getMatch(0);
  String filesize=new Regex(brbefore,"String_Node_Str").getMatch(0);
  if (brbefore.contains("String_Node_Str")) {
    link.getLinkStatus().setStatusText(JDL.L("String_Node_Str","String_Node_Str"));
  }
  if (filename == null || filesize == null)   throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
  link.setName(filename);
  link.setDownloadSize(Regex.getSize(filesize));
  return AvailableStatus.TRUE;
}

Fixed version (ground truth):
@Override public AvailableStatus requestFileInformation(DownloadLink link) throws IOException, PluginException {
  this.setBrowserExclusive();
  br.setCookie("String_Node_Str","String_Node_Str","String_Node_Str");
  br.getPage(link.getDownloadURL());
  doSomething();
  if (brbefore.contains("String_Node_Str"))   throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
  if (brbefore.contains("String_Node_Str"))   throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
  if (brbefore.contains("String_Node_Str"))   throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
  String filename=new Regex(brbefore,"String_Node_Str").getMatch(0);
  String filesize=new Regex(brbefore,"String_Node_Str").getMatch(0);
  if (brbefore.contains(ONLY4PREMIUMERROR0) || brbefore.contains(ONLY4PREMIUMERROR1)) {
    link.getLinkStatus().setStatusText(JDL.L("String_Node_Str","String_Node_Str"));
  }
  if (filename == null || filesize == null)   throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
  link.setName(filename);
  link.setDownloadSize(Regex.getSize(filesize));
  return AvailableStatus.TRUE;
}
Program: 20879
Project: 20879
Buggy source:
@Override public AvailableStatus requestFileInformation(DownloadLink downloadLink) throws IOException, PluginException {
  this.setBrowserExclusive();
  br.setFollowRedirects(true);
  br.getHeaders().put("String_Node_Str",downloadLink.getDownloadURL());
  br.getPage("String_Node_Str");
  if (!br.getURL().equals(downloadLink.getDownloadURL()))   br.getPage(downloadLink.getDownloadURL());
  if (br.containsHTML("String_Node_Str"))   throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
  String fileName=br.getRegex("String_Node_Str").getMatch(0);
  if (fileName == null) {
    fileName=br.getRegex("String_Node_Str").getMatch(0);
  }
  String fileSize=br.getRegex("String_Node_Str").getMatch(1);
  if (fileName == null)   throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
  fileSize=fileSize.replace("String_Node_Str","String_Node_Str");
  fileSize=fileSize.replace("String_Node_Str","String_Node_Str");
  fileSize=fileSize.replace("String_Node_Str","String_Node_Str");
  fileSize=fileSize.replace("String_Node_Str","String_Node_Str");
  if (!fileSize.endsWith("String_Node_Str"))   fileSize=fileSize + "String_Node_Str";
  downloadLink.setName(fileName.trim());
  if (fileSize != null)   downloadLink.setDownloadSize(Regex.getSize(fileSize.replace("String_Node_Str","String_Node_Str")));
  return AvailableStatus.TRUE;
}

Fixed version (ground truth):
@Override public AvailableStatus requestFileInformation(DownloadLink downloadLink) throws IOException, PluginException {
  this.setBrowserExclusive();
  br.setFollowRedirects(true);
  br.getHeaders().put("String_Node_Str",downloadLink.getDownloadURL());
  br.getPage("String_Node_Str");
  if (!br.getURL().equals(downloadLink.getDownloadURL()))   br.getPage(downloadLink.getDownloadURL());
  if (br.containsHTML("String_Node_Str"))   throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
  String fileName=br.getRegex("String_Node_Str").getMatch(0);
  if (fileName == null) {
    fileName=br.getRegex("String_Node_Str").getMatch(0);
  }
  String fileSize=br.getRegex("String_Node_Str").getMatch(1);
  if (fileName == null)   throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
  fileSize=fileSize.replace("String_Node_Str","String_Node_Str");
  fileSize=fileSize.replace("String_Node_Str","String_Node_Str");
  fileSize=fileSize.replace("String_Node_Str","String_Node_Str");
  fileSize=fileSize.replace("String_Node_Str","String_Node_Str");
  if (!fileSize.endsWith("String_Node_Str"))   fileSize=fileSize + "String_Node_Str";
  downloadLink.setName(fileName.trim());
  if (fileSize != null)   downloadLink.setDownloadSize(Regex.getSize(fileSize.trim().replace("String_Node_Str","String_Node_Str").replace("String_Node_Str","String_Node_Str")));
  return AvailableStatus.TRUE;
}
Program: 20880
Project: 20880
Buggy source:
private int generateWidth(int percent){
  return (int)(12.4 * percent);
}

Fixed version (ground truth):
private int generateWidth(int percent){
  return (int)(1.24 * percent);
}
Program: 20883
Project: 20883
Buggy source:
@Override public AvailableStatus requestFileInformation(DownloadLink parameter) throws Exception {
  this.setBrowserExclusive();
  String fileid=new Regex(parameter.getDownloadURL(),"String_Node_Str").getMatch(0);
  br.getPage("String_Node_Str" + fileid);
  String status=br.getRegex("String_Node_Str").getMatch(0);
  if (status == null || !status.equals("String_Node_Str"))   throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
  String filename=br.getRegex("String_Node_Str").getMatch(0);
  String filesize=br.getRegex("String_Node_Str").getMatch(0);
  if (filename == null || filename.matches("String_Node_Str") || filesize == null)   throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
  parameter.setFinalFileName(filename.trim());
  if (filesize != null)   parameter.setDownloadSize(Regex.getSize(filesize));
  return AvailableStatus.TRUE;
}

Fixed version (ground truth):
@Override public AvailableStatus requestFileInformation(DownloadLink parameter) throws Exception {
  this.setBrowserExclusive();
  String fileid=new Regex(parameter.getDownloadURL(),"String_Node_Str").getMatch(0);
  br.getPage("String_Node_Str" + fileid);
  String pageMoved=br.getRegex("String_Node_Str").getMatch(0);
  if (pageMoved != null) {
    logger.info("String_Node_Str" + fileid + "String_Node_Str");
    String newFileid=new Regex(pageMoved,"String_Node_Str").getMatch(0);
    parameter.setUrlDownload("String_Node_Str" + newFileid + "String_Node_Str");
    br.getPage(pageMoved);
  }
  String status=br.getRegex("String_Node_Str").getMatch(0);
  if (status == null)   throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
  if (!status.equals("String_Node_Str"))   throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
  String filename=br.getRegex("String_Node_Str").getMatch(0);
  String filesize=br.getRegex("String_Node_Str").getMatch(0);
  if (filename == null || filename.matches("String_Node_Str") || filesize == null)   throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
  parameter.setFinalFileName(filename.trim());
  if (filesize != null)   parameter.setDownloadSize(Regex.getSize(filesize));
  return AvailableStatus.TRUE;
}
Program: 20885
Project: 20885
Buggy source:
@Override public AvailableStatus requestFileInformation(DownloadLink link) throws IOException, PluginException {
  this.setBrowserExclusive();
  br.getPage(link.getDownloadURL());
  if (br.containsHTML("String_Node_Str"))   throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
  String filename=br.getRegex("String_Node_Str").getMatch(1);
  String filesize=br.getRegex("String_Node_Str").getMatch(1);
  if (filename == null || filesize == null || filename.matches("String_Node_Str"))   throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
  link.setName(filename.trim());
  filesize=filesize.replace("String_Node_Str","String_Node_Str");
  filesize=filesize.replace("String_Node_Str","String_Node_Str");
  filesize=filesize.replace("String_Node_Str","String_Node_Str");
  filesize=filesize.replaceAll("String_Node_Str","String_Node_Str");
  filesize=filesize + "String_Node_Str";
  link.setDownloadSize(Regex.getSize(filesize));
  return AvailableStatus.TRUE;
}

Fixed version (ground truth):
@Override public AvailableStatus requestFileInformation(DownloadLink link) throws IOException, PluginException {
  this.setBrowserExclusive();
  br.getPage(link.getDownloadURL());
  if (br.containsHTML("String_Node_Str"))   throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
  String filename=br.getRegex("String_Node_Str").getMatch(1);
  String filesize=br.getRegex("String_Node_Str").getMatch(1);
  if (filename == null || filesize == null || filename.matches("String_Node_Str"))   throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
  link.setName(filename.trim());
  filesize=filesize.replace("String_Node_Str","String_Node_Str");
  filesize=filesize.replace("String_Node_Str","String_Node_Str");
  filesize=filesize.replace("String_Node_Str","String_Node_Str");
  filesize=filesize.replaceAll("String_Node_Str","String_Node_Str");
  filesize=filesize + "String_Node_Str";
  link.setDownloadSize(Regex.getSize(filesize));
  if (br.containsHTML("String_Node_Str"))   link.getLinkStatus().setStatusText(JDL.L("String_Node_Str","String_Node_Str"));
  return AvailableStatus.TRUE;
}
Program: 20891
Project: 20891
Buggy source:
@Override public void handleFree(DownloadLink downloadLink) throws Exception {
  requestFileInformation(downloadLink);
}

Fixed version (ground truth):
@Override public void handleFree(DownloadLink downloadLink) throws Exception {
  requestFileInformation(downloadLink);
  doFree(downloadLink);
}
Program: 20893
Project: 20893
Buggy source:
public void checkErrors() throws NumberFormatException, PluginException {
  if (br.containsHTML("String_Node_Str"))   throw new PluginException(LinkStatus.ERROR_TEMPORARILY_UNAVAILABLE,"String_Node_Str",30 * 60 * 1000l);
  if (br.containsHTML("String_Node_Str"))   throw new PluginException(LinkStatus.ERROR_TEMPORARILY_UNAVAILABLE,20 * 60 * 1000l);
  if (br.containsHTML("String_Node_Str") || br.containsHTML("String_Node_Str")) {
    String wait=br.getRegex("String_Node_Str").getMatch(0);
    if (wait != null)     throw new PluginException(LinkStatus.ERROR_IP_BLOCKED,Integer.parseInt(wait.trim()) * 1000l);
    throw new PluginException(LinkStatus.ERROR_IP_BLOCKED,30 * 60 * 1000l);
  }
  if (br.containsHTML("String_Node_Str")) {
    throw new PluginException(LinkStatus.ERROR_HOSTER_TEMPORARILY_UNAVAILABLE,JDL.L("String_Node_Str","String_Node_Str"),1 * 60 * 1000l);
  }
  if (br.containsHTML("String_Node_Str"))   throw new PluginException(LinkStatus.ERROR_IP_BLOCKED,5 * 60 * 1001l);
  if (br.containsHTML("String_Node_Str"))   throw new PluginException(LinkStatus.ERROR_IP_BLOCKED,5 * 60 * 1001l);
  String wait=br.getRegex("String_Node_Str").getMatch(0);
  if (wait != null)   throw new PluginException(LinkStatus.ERROR_IP_BLOCKED,Regex.getMilliSeconds(wait));
  if (br.containsHTML("String_Node_Str")) {
    logger.info("String_Node_Str");
    throw new PluginException(LinkStatus.ERROR_PREMIUM,PluginException.VALUE_ID_PREMIUM_TEMP_DISABLE);
  }
}

Fixed version (ground truth):
public void checkErrors() throws NumberFormatException, PluginException {
  logger.info("String_Node_Str");
  if (br.containsHTML("String_Node_Str"))   throw new PluginException(LinkStatus.ERROR_TEMPORARILY_UNAVAILABLE,"String_Node_Str",30 * 60 * 1000l);
  if (br.containsHTML("String_Node_Str"))   throw new PluginException(LinkStatus.ERROR_TEMPORARILY_UNAVAILABLE,20 * 60 * 1000l);
  if (br.containsHTML("String_Node_Str") || br.containsHTML("String_Node_Str")) {
    String wait=br.getRegex("String_Node_Str").getMatch(0);
    if (wait != null)     throw new PluginException(LinkStatus.ERROR_IP_BLOCKED,Integer.parseInt(wait.trim()) * 1000l);
    throw new PluginException(LinkStatus.ERROR_IP_BLOCKED,30 * 60 * 1000l);
  }
  if (br.containsHTML("String_Node_Str")) {
    throw new PluginException(LinkStatus.ERROR_HOSTER_TEMPORARILY_UNAVAILABLE,JDL.L("String_Node_Str","String_Node_Str"),1 * 60 * 1000l);
  }
  if (br.containsHTML("String_Node_Str"))   throw new PluginException(LinkStatus.ERROR_IP_BLOCKED,5 * 60 * 1001l);
  if (br.containsHTML("String_Node_Str"))   throw new PluginException(LinkStatus.ERROR_IP_BLOCKED,5 * 60 * 1001l);
  String wait=br.getRegex("String_Node_Str").getMatch(0);
  if (wait != null)   throw new PluginException(LinkStatus.ERROR_IP_BLOCKED,Regex.getMilliSeconds(wait));
  if (br.containsHTML("String_Node_Str")) {
    logger.info("String_Node_Str");
    throw new PluginException(LinkStatus.ERROR_PREMIUM,PluginException.VALUE_ID_PREMIUM_TEMP_DISABLE);
  }
}