nus-yam/ex-repair huggingface dataset:
Program: 20756
Project: 20756
Buggy source:
@Override public AvailableStatus requestFileInformation(DownloadLink parameter) throws Exception {
  this.setBrowserExclusive();
  br.getPage(parameter.getDownloadURL());
  String name=br.getRegex("String_Node_Str").getMatch(0);
  if (br.containsHTML("String_Node_Str"))   throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
  if (name == null || "String_Node_Str".equals(name))   throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
  parameter.setFinalFileName(name + "String_Node_Str");
  return AvailableStatus.TRUE;
}

Fixed version (ground truth):
@Override public AvailableStatus requestFileInformation(DownloadLink parameter) throws Exception {
  this.setBrowserExclusive();
  br.getPage(parameter.getDownloadURL());
  String name=br.getRegex("String_Node_Str").getMatch(0);
  if (br.containsHTML("String_Node_Str"))   throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
  if (name == null || "String_Node_Str".equals(name))   throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
  parameter.setFinalFileName(Encoding.htmlDecode(name) + "String_Node_Str");
  DLLINK=br.getRegex("String_Node_Str").getMatch(0);
  if (DLLINK == null)   throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
  DLLINK=Encoding.urlDecode(DLLINK,true);
  Browser br2=br.cloneBrowser();
  br2.setFollowRedirects(true);
  URLConnectionAdapter con=null;
  try {
    con=br2.openGetConnection(DLLINK);
    if (!con.getContentType().contains("String_Node_Str"))     parameter.setDownloadSize(con.getLongContentLength());
 else     throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
    return AvailableStatus.TRUE;
  }
  finally {
    try {
      con.disconnect();
    }
 catch (    Throwable e) {
    }
  }
}
Program: 20757
Project: 20757
Buggy source:
private String parseFeed(JDFeedMeFeed feed,String timestamp,String content) throws Exception {
  String new_timestamp=timestamp;
  boolean found_new_posts=false;
  RssParser feed_parser=new RssParser(feed);
  feed_parser.parseContent(content);
  int feed_item_number=0;
  JDFeedMePost post=null;
  while ((post=feed_parser.getPost()) != null) {
    feed_item_number++;
    String post_description=post.getDescription();
    post.setDescription("String_Node_Str");
    if (post.isValid()) {
      boolean is_new=handlePost(feed,post,post_description,timestamp);
      if (is_new)       found_new_posts=true;
      if (post.isTimestampNewer(new_timestamp))       new_timestamp=post.getTimestamp();
    }
 else {
      logger.severe("String_Node_Str" + Integer.toString(feed_item_number) + "String_Node_Str"+ feed.getAddress());
    }
  }
  if (found_new_posts)   gui.setFeedNewposts(feed,true);
  return new_timestamp;
}

Fixed version (ground truth):
private String parseFeed(JDFeedMeFeed feed,String timestamp,String content) throws Exception {
  String new_timestamp=timestamp;
  boolean found_new_posts=false;
  RssParser feed_parser=new RssParser(feed);
  feed_parser.parseContent(content);
  int feed_item_number=0;
  JDFeedMePost post=null;
  while ((post=feed_parser.getPost()) != null) {
    feed_item_number++;
    String post_description=post.getDescription();
    post.setDescription(extractLinksFromHtml(post_description,JDFeedMeFeed.HOSTER_ANY_HOSTER,JDFeedMeFeed.HOSTER_EXCLUDE));
    if (post.isValid()) {
      boolean is_new=handlePost(feed,post,post_description,timestamp);
      if (is_new)       found_new_posts=true;
      if (post.isTimestampNewer(new_timestamp))       new_timestamp=post.getTimestamp();
    }
 else {
      logger.severe("String_Node_Str" + Integer.toString(feed_item_number) + "String_Node_Str"+ feed.getAddress());
    }
  }
  if (found_new_posts)   gui.setFeedNewposts(feed,true);
  return new_timestamp;
}
Program: 20758
Project: 20758
Buggy source:
@Override public void run(){
  try {
    logger.info("String_Node_Str");
    while (running) {
synchronized (this) {
        sleeping=true;
      }
      try {
        int syncIntervalHours=1;
        if (gui != null)         syncIntervalHours=gui.getConfig().getSyncintervalhours();
        sleep(syncIntervalHours * 60 * 60000);
      }
 catch (      InterruptedException e) {
      }
synchronized (this) {
        sleeping=false;
      }
      if (running) {
        try {
          syncRss();
        }
 catch (        Exception e) {
        }
      }
    }
    logger.info("String_Node_Str");
  }
 catch (  Exception e) {
    logger.severe("String_Node_Str");
    JDLogger.exception(e);
  }
}

Fixed version (ground truth):
@Override public void run(){
  try {
    logger.info("String_Node_Str");
    while (running) {
synchronized (this) {
        sleeping=true;
      }
      try {
        int syncIntervalHours=1;
        if (gui != null)         syncIntervalHours=gui.getConfig().getSyncintervalhours();
        sleep(syncIntervalHours * 60 * 60000);
      }
 catch (      InterruptedException e) {
      }
synchronized (this) {
        sleeping=false;
      }
      if (running) {
        try {
          new GuiRunnable<Object>(){
            @Override public Object runSave(){
              syncRss();
              return null;
            }
          }
.start();
        }
 catch (        Exception e) {
        }
      }
    }
    logger.info("String_Node_Str");
  }
 catch (  Exception e) {
    logger.severe("String_Node_Str");
    JDLogger.exception(e);
  }
}
Program: 20759
Project: 20759
Buggy source:
public void downloadPost(JDFeedMeFeed feed,JDFeedMePost post,String post_description){
  String link_list_to_download=null;
  if ((link_list_to_download == null) && (post.hasValidFiles())) {
    link_list_to_download=extractLinksFromHtml(post.getFiles(),feed.getHoster(),"String_Node_Str");
  }
  if ((link_list_to_download == null) && (post.hasValidLink())) {
    try {
      String response=new Browser().getPage(post.getLink());
      link_list_to_download=extractLinksFromHtml(response,feed.getHoster(),"String_Node_Str");
    }
 catch (    Exception e) {
      logger.severe("String_Node_Str" + post.getLink());
    }
  }
  if ((link_list_to_download == null) && (post_description != null) && (post_description.trim().length() > 0)) {
    link_list_to_download=extractLinksFromHtml(post_description,feed.getHoster(),"String_Node_Str");
  }
  if (link_list_to_download == null) {
    post.setAdded(JDFeedMePost.ADDED_YES_NO_FILES);
    return;
  }
  logger.info("String_Node_Str" + link_list_to_download);
  boolean anything_downloaded=downloadLinks(link_list_to_download,feed,post);
  if (anything_downloaded) {
    post.setAdded(JDFeedMePost.ADDED_YES);
    gui.notifyPostAddedInOtherFeed(post,feed);
  }
 else   post.setAdded(JDFeedMePost.ADDED_YES_NO_FILES);
}

Fixed version (ground truth):
public void downloadPost(JDFeedMeFeed feed,JDFeedMePost post,String post_description){
  String link_list_to_download=null;
  if ((link_list_to_download == null) && (post.hasValidFiles())) {
    link_list_to_download=extractLinksFromHtml(post.getFiles(),feed.getHoster(),JDFeedMeFeed.HOSTER_EXCLUDE);
  }
  if ((link_list_to_download == null) && (post.hasValidLink())) {
    try {
      Browser browser=new Browser();
      browser.setFollowRedirects(true);
      String response=browser.getPage(post.getLink());
      link_list_to_download=extractLinksFromHtml(response,feed.getHoster(),JDFeedMeFeed.HOSTER_EXCLUDE);
    }
 catch (    Exception e) {
      logger.severe("String_Node_Str" + post.getLink());
    }
  }
  if ((link_list_to_download == null) && (post_description != null) && (post_description.trim().length() > 0)) {
    link_list_to_download=extractLinksFromHtml(post_description,feed.getHoster(),JDFeedMeFeed.HOSTER_EXCLUDE);
  }
  if (link_list_to_download == null) {
    post.setAdded(JDFeedMePost.ADDED_YES_NO_FILES);
    return;
  }
  logger.info("String_Node_Str" + link_list_to_download);
  boolean anything_downloaded=downloadLinks(link_list_to_download,feed,post);
  if (anything_downloaded) {
    post.setAdded(JDFeedMePost.ADDED_YES);
    gui.notifyPostAddedInOtherFeed(post,feed);
  }
 else   post.setAdded(JDFeedMePost.ADDED_YES_NO_FILES);
}
Program: 20760
Project: 20760
Buggy source:
private void syncRss(){
  ArrayList<JDFeedMeFeed> feeds=gui.getFeeds();
  for (  JDFeedMeFeed feed : feeds) {
    if (!feed.isEnabled())     continue;
    String feed_address=feed.getAddress();
    if (feed_address.length() == 0)     continue;
    String response;
    try {
      String timestamp=null;
      if ((feed.getTimestamp() != null) && (feed.getTimestamp().length() > 0))       timestamp=feed.getTimestamp();
      logger.info("String_Node_Str" + feed_address + "String_Node_Str"+ timestamp+ "String_Node_Str");
      gui.setFeedStatus(feed,JDFeedMeFeed.STATUS_RUNNING);
      response=new Browser().getPage(feed_address);
      String new_timestamp=parseFeed(feed,timestamp,response);
      if ((new_timestamp != null) && (new_timestamp != timestamp)) {
        gui.setFeedTimestamp(feed,new_timestamp);
      }
      gui.setFeedStatus(feed,JDFeedMeFeed.STATUS_OK);
    }
 catch (    Exception e) {
      logger.severe("String_Node_Str" + feed_address + "String_Node_Str"+ e.getMessage()+ "String_Node_Str");
      gui.setFeedStatus(feed,JDFeedMeFeed.STATUS_ERROR);
    }
  }
  gui.saveFeeds();
  gui.savePosts();
}

Fixed version (ground truth):
private void syncRss(){
  ArrayList<JDFeedMeFeed> feeds=gui.getFeeds();
  for (  JDFeedMeFeed feed : feeds) {
    if (!feed.isEnabled())     continue;
    String feed_address=feed.getAddress();
    if (feed_address.length() == 0)     continue;
    String response="String_Node_Str";
    try {
      String timestamp=null;
      if ((feed.getTimestamp() != null) && (feed.getTimestamp().length() > 0))       timestamp=feed.getTimestamp();
      logger.info("String_Node_Str" + feed_address + "String_Node_Str"+ timestamp+ "String_Node_Str");
      gui.setFeedStatus(feed,JDFeedMeFeed.STATUS_RUNNING);
      Browser browser=new Browser();
      browser.setFollowRedirects(true);
      response=browser.getPage(feed_address);
      String new_timestamp=parseFeed(feed,timestamp,response);
      if ((new_timestamp != null) && (new_timestamp != timestamp)) {
        gui.setFeedTimestamp(feed,new_timestamp);
      }
      gui.setFeedStatus(feed,JDFeedMeFeed.STATUS_OK);
    }
 catch (    Exception e) {
      int max_reponse_length=1000;
      String response_short=response;
      if (response_short != null) {
        if (response_short.length() > max_reponse_length) {
          response_short=response_short.substring(0,max_reponse_length / 2) + "String_Node_Str" + response_short.substring(response_short.length() - max_reponse_length / 2);
        }
      }
      e.printStackTrace();
      logger.severe("String_Node_Str" + feed_address + "String_Node_Str"+ e.toString()+ "String_Node_Str"+ response_short);
      gui.setFeedStatus(feed,JDFeedMeFeed.STATUS_ERROR);
    }
  }
  gui.saveFeeds();
  gui.savePosts();
}
Program: 20761
Project: 20761
Buggy source:
public static void downloadPostThreaded(final JDFeedMeFeed feed,final JDFeedMePost post,final String post_description,final JDTableModel table){
  if (INSTANCE == null)   return;
  new Thread(){
    public void run(){
      INSTANCE.downloadPost(feed,post,post_description);
      if (table != null) {
        table.refreshModel();
        table.fireTableDataChanged();
      }
    }
  }
.start();
}

Fixed version (ground truth):
public static void downloadPostThreaded(final JDFeedMeFeed feed,final JDFeedMePost post,final String post_description,final JDTableModel table){
  if (INSTANCE == null)   return;
  new Thread(){
    public void run(){
      INSTANCE.downloadPost(feed,post,post_description);
      if (table != null) {
        new GuiRunnable<Object>(){
          @Override public Object runSave(){
            table.refreshModel();
            table.fireTableDataChanged();
            return null;
          }
        }
.start();
      }
    }
  }
.start();
}
Program: 20762
Project: 20762
Buggy source:
private boolean handlePost(JDFeedMeFeed feed,JDFeedMePost post,String post_description,String timestamp){
  if (post.isTimestampNewer(timestamp)) {
    logger.info("String_Node_Str" + post.getTimestamp() + "String_Node_Str");
    post.setNewpost(true);
    boolean need_to_add=runFilterOnPost(feed,post,post_description);
    if (!need_to_add) {
      logger.info("String_Node_Str" + post.getTitle() + "String_Node_Str"+ post_description+ "String_Node_Str");
      post.setAdded(JDFeedMePost.ADDED_NO);
    }
 else {
      downloadPost(feed,post,post_description);
    }
    gui.addPostToFeed(post,feed);
    return true;
  }
 else {
    logger.info("String_Node_Str" + post.getTimestamp() + "String_Node_Str");
    return false;
  }
}

Fixed version (ground truth):
private boolean handlePost(JDFeedMeFeed feed,JDFeedMePost post,String post_description,String timestamp){
  if (post.isTimestampNewer(timestamp)) {
    if (JDFeedMe.VERBOSE)     logger.info("String_Node_Str" + post.getTimestamp() + "String_Node_Str");
    post.setNewpost(true);
    boolean need_to_add=runFilterOnPost(feed,post,post_description);
    if (!need_to_add) {
      if (JDFeedMe.VERBOSE)       logger.info("String_Node_Str" + post.getTitle() + "String_Node_Str"+ post_description+ "String_Node_Str");
      post.setAdded(JDFeedMePost.ADDED_NO);
    }
 else {
      downloadPost(feed,post,post_description);
    }
    gui.addPostToFeed(post,feed);
    return true;
  }
 else {
    if (JDFeedMe.VERBOSE)     logger.info("String_Node_Str" + post.getTimestamp() + "String_Node_Str");
    return false;
  }
}
Program: 20763
Project: 20763
Buggy source:
private boolean runFilterOnPost(JDFeedMeFeed feed,JDFeedMePost post,String post_description){
  if (!feed.getDoFilters())   return true;
  if (feed.getFiltersearchtitle() || feed.getFiltersearchdesc()) {
    FilterChecker filter=new FilterChecker(feed.getFilters());
    if (feed.getFiltersearchtitle()) {
      if (filter.match(post.getTitle())) {
        logger.info("String_Node_Str" + post.getTitle() + "String_Node_Str");
        return true;
      }
    }
    if (feed.getFiltersearchdesc()) {
      if (filter.match(post_description)) {
        logger.info("String_Node_Str" + post_description + "String_Node_Str");
        return true;
      }
    }
  }
  return false;
}

Fixed version (ground truth):
private boolean runFilterOnPost(JDFeedMeFeed feed,JDFeedMePost post,String post_description){
  if (!feed.getDoFilters())   return true;
  if (feed.getFiltersearchtitle() || feed.getFiltersearchdesc()) {
    FilterChecker filter=new FilterChecker(feed.getFilters());
    if (feed.getFiltersearchtitle()) {
      if (filter.match(post.getTitle())) {
        if (JDFeedMe.VERBOSE)         logger.info("String_Node_Str" + post.getTitle() + "String_Node_Str");
        return true;
      }
    }
    if (feed.getFiltersearchdesc()) {
      if (filter.match(post_description)) {
        if (JDFeedMe.VERBOSE)         logger.info("String_Node_Str" + post_description + "String_Node_Str");
        return true;
      }
    }
  }
  return false;
}
Program: 20764
Project: 20764
Buggy source:
private String extractLinksFromHtml(String html,String limit_to_host,String exclude_host){
  String result="String_Node_Str";
  String[] links=HTMLParser.getHttpLinks(html,null);
  for (  String link : links) {
    try {
      for (      final HostPluginWrapper pHost : HostPluginWrapper.getHostWrapper()) {
        if (!pHost.isEnabled())         continue;
        if ((exclude_host != null) && (pHost.getHost().equalsIgnoreCase(exclude_host)))         continue;
        if ((limit_to_host != null) && (!limit_to_host.equals(JDFeedMeFeed.HOSTER_ANY_HOSTER))) {
          if (limit_to_host.equals(JDFeedMeFeed.HOSTER_ANY_PREMIUM)) {
            if (!pHost.isPremiumEnabled())             continue;
            Account account=AccountController.getInstance().getValidAccount(pHost.getPlugin());
            if (account == null)             continue;
          }
 else {
            if (!pHost.getHost().equalsIgnoreCase(limit_to_host))             continue;
          }
        }
        if (!pHost.canHandle(link))         continue;
        result+=link + "String_Node_Str";
      }
    }
  finally {
    }
  }
  return result;
}

Fixed version (ground truth):
private String extractLinksFromHtml(String html,String limit_to_host,String[] exclude_hosters){
  String result="String_Node_Str";
  html=html.replace("String_Node_Str","String_Node_Str");
  String[] links=HTMLParser.getHttpLinks(html,null);
  for (  String link : links) {
    try {
      for (      final HostPluginWrapper pHost : HostPluginWrapper.getHostWrapper()) {
        if (!pHost.isEnabled())         continue;
        if (exclude_hosters != null) {
          boolean in_ignore_list=false;
          for (          final String exclude_hoster : exclude_hosters) {
            if (pHost.getHost().equalsIgnoreCase(exclude_hoster))             in_ignore_list=true;
          }
          if (in_ignore_list)           continue;
        }
        if ((limit_to_host != null) && (!limit_to_host.equals(JDFeedMeFeed.HOSTER_ANY_HOSTER))) {
          if (limit_to_host.equals(JDFeedMeFeed.HOSTER_ANY_PREMIUM)) {
            if (!pHost.isPremiumEnabled())             continue;
            Account account=AccountController.getInstance().getValidAccount(pHost.getPlugin());
            if (account == null)             continue;
          }
 else {
            if (!pHost.getHost().equalsIgnoreCase(limit_to_host))             continue;
          }
        }
        if (!pHost.canHandle(link))         continue;
        result+=link + "String_Node_Str";
      }
    }
  finally {
    }
  }
  return result;
}
Program: 20765
Project: 20765
Buggy source:
public synchronized static JDFeedMeConfig loadXML(String location){
  Thread.currentThread().setContextClassLoader(JDUtilities.getJDClassLoader());
  Object loaded=JDIO.loadObject(JDUtilities.getResourceFile(location),true);
  if (loaded != null)   return (JDFeedMeConfig)loaded;
 else   return new JDFeedMeConfig();
}

Fixed version (ground truth):
public synchronized static JDFeedMeConfig loadXML(String location){
  Thread.currentThread().setContextClassLoader(JDUtilities.getJDClassLoader());
  File xmlFile=JDUtilities.getResourceFile(location);
  if (xmlFile.exists()) {
    Object loaded=JDIO.loadObject(xmlFile,true);
    if (loaded != null)     return (JDFeedMeConfig)loaded;
  }
  return new JDFeedMeConfig();
}
Program: 20766
Project: 20766
Buggy source:
@SuppressWarnings("String_Node_Str") public synchronized static ArrayList<JDFeedMeFeed> loadXML(String location){
  Thread.currentThread().setContextClassLoader(JDUtilities.getJDClassLoader());
  File xmlFile=JDUtilities.getResourceFile(location);
  Object loaded;
  if (xmlFile.exists()) {
    loaded=JDIO.loadObject(JDUtilities.getResourceFile(location),true);
    if (loaded != null)     return (ArrayList<JDFeedMeFeed>)loaded;
  }
  return new ArrayList<JDFeedMeFeed>();
}

Fixed version (ground truth):
@SuppressWarnings("String_Node_Str") public synchronized static ArrayList<JDFeedMeFeed> loadXML(String location){
  Thread.currentThread().setContextClassLoader(JDUtilities.getJDClassLoader());
  File xmlFile=JDUtilities.getResourceFile(location);
  if (xmlFile.exists()) {
    Object loaded=JDIO.loadObject(xmlFile,true);
    if (loaded != null)     return (ArrayList<JDFeedMeFeed>)loaded;
  }
  return new ArrayList<JDFeedMeFeed>();
}
Program: 20767
Project: 20767
Buggy source:
@Override protected int getMaxWidth(){
  return 50;
}

Fixed version (ground truth):
@Override protected int getMaxWidth(){
  return 60;
}
Program: 20768
Project: 20768
Buggy source:
@Override protected int getMaxWidth(){
  return 50;
}

Fixed version (ground truth):
@Override protected int getMaxWidth(){
  return 60;
}
Program: 20769
Project: 20769
Buggy source:
private void prepareBrowser(final Browser br){
  if (br == null) {
    return;
  }
  br.getHeaders().put("String_Node_Str",this.ua);
  br.getHeaders().put("String_Node_Str","String_Node_Str");
  br.getHeaders().put("String_Node_Str","String_Node_Str");
  br.getHeaders().put("String_Node_Str",null);
  br.getHeaders().put("String_Node_Str",null);
}

Fixed version (ground truth):
private void prepareBrowser(final Browser br){
  if (br == null) {
    return;
  }
  br.getHeaders().put("String_Node_Str","String_Node_Str");
  br.getHeaders().put("String_Node_Str","String_Node_Str");
  br.getHeaders().put("String_Node_Str","String_Node_Str");
  br.getHeaders().put("String_Node_Str","String_Node_Str");
}
Program: 20771
Project: 20771
Buggy source:
@Override public AvailableStatus requestFileInformation(DownloadLink downloadLink) throws IOException, PluginException {
  this.setBrowserExclusive();
  prepareBrowser(br);
  br.setCookie("String_Node_Str","String_Node_Str","String_Node_Str");
  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);
    if (filename == null) {
      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(0);
  if (filesize == null) {
    filesize=br.getRegex("String_Node_Str").getMatch(0);
    if (filesize == null) {
      filesize=br.getRegex("String_Node_Str").getMatch(0);
    }
  }
  if (filename == null || filesize == null) {
    if (br.containsHTML("String_Node_Str"))     throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
    throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
  }
  downloadLink.setFinalFileName(filename.trim().replace("String_Node_Str","String_Node_Str"));
  downloadLink.setDownloadSize(Regex.getSize(filesize.trim()));
  return AvailableStatus.TRUE;
}

Fixed version (ground truth):
@Override public AvailableStatus requestFileInformation(DownloadLink downloadLink) throws IOException, PluginException {
  this.setBrowserExclusive();
  br.setCookie("String_Node_Str","String_Node_Str","String_Node_Str");
  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);
    if (filename == null) {
      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(0);
  if (filesize == null) {
    filesize=br.getRegex("String_Node_Str").getMatch(0);
    if (filesize == null) {
      filesize=br.getRegex("String_Node_Str").getMatch(0);
    }
  }
  if (filename == null || filesize == null) {
    if (br.containsHTML("String_Node_Str"))     throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
    throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
  }
  downloadLink.setFinalFileName(filename.trim().replace("String_Node_Str","String_Node_Str"));
  downloadLink.setDownloadSize(Regex.getSize(filesize.trim()));
  return AvailableStatus.TRUE;
}
Program: 20772
Project: 20772
Buggy source:
@Override public void handleFree(DownloadLink downloadLink) throws Exception, PluginException {
  requestFileInformation(downloadLink);
  if (br.containsHTML("String_Node_Str"))   throw new PluginException(LinkStatus.ERROR_IP_BLOCKED);
  br.setFollowRedirects(false);
  Form dlform=br.getFormbyProperty("String_Node_Str","String_Node_Str");
  if (dlform == null) {
    logger.warning("String_Node_Str");
    throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
  }
  br.submitForm(dlform);
  for (int i=0; i <= 3; i++) {
    br.setFollowRedirects(false);
    Form captchaform=br.getFormbyProperty("String_Node_Str","String_Node_Str");
    String captchaUrl=getCaptchaUrl();
    if (captchaform == null || captchaUrl == null) {
      logger.warning("String_Node_Str");
      throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
    }
    String code=getCaptchaCode(captchaUrl,downloadLink);
    captchaform.put("String_Node_Str",code);
    br.submitForm(captchaform);
    if (getCaptchaUrl() != null)     continue;
    if (!br.containsHTML(LINKFRAMEPART)) {
      logger.warning("String_Node_Str");
      throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
    }
    break;
  }
  if (getCaptchaUrl() != null)   throw new PluginException(LinkStatus.ERROR_CAPTCHA);
  br.getPage(NEXTPAGE);
  String wait=br.getRegex("String_Node_Str").getMatch(0);
  int tt=60;
  if (wait != null) {
    logger.info("String_Node_Str");
    tt=Integer.parseInt(wait);
  }
  sleep(tt * 1001,downloadLink);
  br.getPage(NEXTPAGE);
  String dllink=br.getRegex("String_Node_Str").getMatch(0);
  if (dllink == null)   dllink=br.getRegex("String_Node_Str").getMatch(0);
  if (dllink == null) {
    logger.warning("String_Node_Str");
    throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
  }
  dl=jd.plugins.BrowserAdapter.openDownload(br,downloadLink,dllink,true,1);
  if (dl.getConnection().getContentType().contains("String_Node_Str")) {
    logger.warning("String_Node_Str");
    br.followConnection();
    if (br.containsHTML("String_Node_Str"))     throw new PluginException(LinkStatus.ERROR_TEMPORARILY_UNAVAILABLE,"String_Node_Str");
    throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
  }
  dl.startDownload();
}

Fixed version (ground truth):
@Override public void handleFree(DownloadLink downloadLink) throws Exception, PluginException {
  requestFileInformation(downloadLink);
  throw new PluginException(LinkStatus.ERROR_FATAL,JDL.L("String_Node_Str","String_Node_Str"));
}
Program: 20775
Project: 20775
Buggy source:
MultiCallback(File file,ExtractionController con,boolean shouldCrc) throws FileNotFoundException {
  this.con=con;
  this.shouldCrc=shouldCrc;
  fos=new FileOutputStream(file,true);
  time=System.currentTimeMillis();
}

Fixed version (ground truth):
MultiCallback(File file,Multi multi,boolean shouldCrc) throws FileNotFoundException {
  this.multi=multi;
  this.shouldCrc=shouldCrc;
  fos=new FileOutputStream(file,true);
}
Program: 20776
Project: 20776
Buggy source:
public int write(byte[] data) throws SevenZipException {
  try {
    fos.write(data);
    con.getArchiv().setExtracted(con.getArchiv().getExtracted() + data.length);
    if ((System.currentTimeMillis() - time) > 1000) {
      con.fireEvent(ExtractionConstants.WRAPPER_ON_PROGRESS);
      time=System.currentTimeMillis();
    }
  }
 catch (  FileNotFoundException e) {
    e.printStackTrace();
  }
catch (  IOException e) {
    e.printStackTrace();
  }
  return data.length;
}

Fixed version (ground truth):
public int write(byte[] data) throws SevenZipException {
  try {
    fos.write(data);
    multi.getArchive().setExtracted(multi.getArchive().getExtracted() + data.length);
    multi.updatedisplay();
  }
 catch (  FileNotFoundException e) {
    e.printStackTrace();
  }
catch (  IOException e) {
    e.printStackTrace();
  }
  return data.length;
}
Program: 20778
Project: 20778
Buggy source:
private void errorHandling(final DownloadLink downloadLink) throws PluginException {
  if (this.br.containsHTML("String_Node_Str")) {
    throw new PluginException(LinkStatus.ERROR_FATAL,"String_Node_Str");
  }
  if (this.br.containsHTML("String_Node_Str")) {
    throw new PluginException(LinkStatus.ERROR_IP_BLOCKED,"String_Node_Str",10 * 60 * 1000l);
  }
  if (this.br.containsHTML("String_Node_Str")) {
    downloadLink.setProperty("String_Node_Str",null);
    throw new PluginException(LinkStatus.ERROR_FATAL,JDL.L("String_Node_Str","String_Node_Str"));
  }
  if (this.br.containsHTML("String_Node_Str")) {
    throw new PluginException(LinkStatus.ERROR_TEMPORARILY_UNAVAILABLE,"String_Node_Str",20 * 60 * 1000l);
  }
}

Fixed version (ground truth):
private void errorHandling(final DownloadLink downloadLink) throws PluginException {
  if (this.br.containsHTML("String_Node_Str")) {
    throw new PluginException(LinkStatus.ERROR_FATAL,JDL.L("String_Node_Str","String_Node_Str"));
  }
  if (this.br.containsHTML("String_Node_Str")) {
    throw new PluginException(LinkStatus.ERROR_IP_BLOCKED,JDL.L("String_Node_Str","String_Node_Str"),10 * 60 * 1000l);
  }
  if (this.br.containsHTML("String_Node_Str")) {
    downloadLink.setProperty("String_Node_Str",null);
    throw new PluginException(LinkStatus.ERROR_FATAL,JDL.L("String_Node_Str","String_Node_Str"));
  }
  if (this.br.containsHTML("String_Node_Str")) {
    throw new PluginException(LinkStatus.ERROR_TEMPORARILY_UNAVAILABLE,JDL.L("String_Node_Str","String_Node_Str"),20 * 60 * 1000l);
  }
}
Program: 20779
Project: 20779
Buggy source:
@Override public AvailableStatus requestFileInformation(DownloadLink downloadLink) throws PluginException, IOException, InterruptedException {
  this.setBrowserExclusive();
  prepareBrowser(br);
  br.getPage(downloadLink.getDownloadURL());
  if (br.containsHTML("String_Node_Str") || br.containsHTML("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 || filesize == null)   throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
  if (filename.contains("String_Node_Str")) {
    downloadLink.setName(filename);
  }
 else {
    downloadLink.setFinalFileName(filename);
  }
  downloadLink.setDownloadSize(Regex.getSize(filesize.replace("String_Node_Str","String_Node_Str").replace("String_Node_Str","String_Node_Str").replace("String_Node_Str","String_Node_Str")));
  return AvailableStatus.TRUE;
}

Fixed version (ground truth):
@Override public AvailableStatus requestFileInformation(DownloadLink downloadLink) throws PluginException, IOException, InterruptedException {
  this.setBrowserExclusive();
  prepareBrowser(br);
  br.getPage(downloadLink.getDownloadURL());
  if (br.getRedirectLocation() != null) {
    String fileID=new Regex(downloadLink.getDownloadURL(),"String_Node_Str").getMatch(0);
    if (!br.getRedirectLocation().contains(fileID)) {
      logger.warning("String_Node_Str");
      throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
    }
    logger.info("String_Node_Str");
    downloadLink.setUrlDownload(br.getRedirectLocation());
    br.getPage(downloadLink.getDownloadURL());
  }
  if (br.containsHTML("String_Node_Str") || br.containsHTML("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 || filesize == null)   throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
  if (filename.contains("String_Node_Str")) {
    downloadLink.setName(filename);
  }
 else {
    downloadLink.setFinalFileName(filename);
  }
  downloadLink.setDownloadSize(Regex.getSize(filesize.replace("String_Node_Str","String_Node_Str").replace("String_Node_Str","String_Node_Str").replace("String_Node_Str","String_Node_Str")));
  return AvailableStatus.TRUE;
}
Program: 20780
Project: 20780
Buggy source:
@Override public void handleFree(DownloadLink downloadLink) throws Exception, PluginException {
  requestFileInformation(downloadLink);
  String fid=br.getRegex("String_Node_Str").getMatch(0);
  if (!br.containsHTML("String_Node_Str") || fid == null)   throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
  boolean failed=true;
  for (int i=0; i <= 3; i++) {
    br.postPage("String_Node_Str","String_Node_Str" + fid + "String_Node_Str"+ getCaptchaCode("String_Node_Str" + new Random().nextInt(1000),downloadLink));
    if (br.containsHTML("String_Node_Str"))     continue;
    failed=false;
    break;
  }
  if (failed)   throw new PluginException(LinkStatus.ERROR_CAPTCHA);
  String dllink=br.getRegex("String_Node_Str").getMatch(0);
  if (dllink == null)   throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
  dl=jd.plugins.BrowserAdapter.openDownload(br,downloadLink,dllink,true,1);
  if (dl.getConnection().getContentType().contains("String_Node_Str")) {
    br.followConnection();
    throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
  }
  dl.startDownload();
}

Fixed version (ground truth):
@Override public void handleFree(DownloadLink downloadLink) throws Exception, PluginException {
  String passCode=null;
  requestFileInformation(downloadLink);
  String fid=br.getRegex("String_Node_Str").getMatch(0);
  if (br.containsHTML(PWPROTECTED)) {
    if (downloadLink.getStringProperty("String_Node_Str",null) == null) {
      passCode=Plugin.getUserInput("String_Node_Str",downloadLink);
    }
 else {
      passCode=downloadLink.getStringProperty("String_Node_Str",null);
    }
    br.postPage(INDEXPAGE,"String_Node_Str" + fid + "String_Node_Str"+ passCode);
    if (br.containsHTML(PWPROTECTED))     throw new PluginException(LinkStatus.ERROR_RETRY);
  }
 else {
    if (!br.containsHTML("String_Node_Str") || fid == null)     throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
  }
  boolean failed=true;
  for (int i=0; i <= 3; i++) {
    br.postPage(INDEXPAGE,"String_Node_Str" + fid + "String_Node_Str"+ getCaptchaCode("String_Node_Str" + new Random().nextInt(1000),downloadLink));
    if (br.containsHTML("String_Node_Str"))     continue;
    failed=false;
    break;
  }
  if (failed)   throw new PluginException(LinkStatus.ERROR_CAPTCHA);
  String dllink=br.getRegex("String_Node_Str").getMatch(0);
  if (dllink == null)   throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
  dl=jd.plugins.BrowserAdapter.openDownload(br,downloadLink,dllink,true,1);
  if (dl.getConnection().getContentType().contains("String_Node_Str")) {
    br.followConnection();
    throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
  }
  if (passCode != null) {
    downloadLink.setProperty("String_Node_Str",passCode);
  }
  dl.startDownload();
}
Program: 20781
Project: 20781
Buggy source:
@Override public AvailableStatus requestFileInformation(DownloadLink link) throws IOException, PluginException {
  this.setBrowserExclusive();
  br.setCustomCharset("String_Node_Str");
  br.setCookie("String_Node_Str","String_Node_Str","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);
  String filesize=br.getRegex("String_Node_Str").getMatch(0);
  if (filename == null || filesize == null)   throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
  link.setName(filename.trim());
  link.setDownloadSize(Regex.getSize(filesize));
  return AvailableStatus.TRUE;
}

Fixed version (ground truth):
@Override public AvailableStatus requestFileInformation(DownloadLink link) throws IOException, PluginException {
  this.setBrowserExclusive();
  br.setCustomCharset("String_Node_Str");
  br.setCookie("String_Node_Str","String_Node_Str","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);
  String filesize=br.getRegex("String_Node_Str").getMatch(0);
  if (filename == null || filesize == null)   throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
  link.setName(filename.trim());
  link.setDownloadSize(Regex.getSize(filesize));
  String md5=br.getRegex("String_Node_Str").getMatch(0);
  if (md5 != null)   link.setMD5Hash(md5.trim());
  if (br.containsHTML(PWPROTECTED))   link.getLinkStatus().setStatusText(JDL.L("String_Node_Str","String_Node_Str"));
  return AvailableStatus.TRUE;
}
Program: 20785
Project: 20785
Buggy source:
public NetUploadedCom(PluginWrapper wrapper){
  super(wrapper);
}

Fixed version (ground truth):
public NetUploadedCom(PluginWrapper wrapper){
  super(wrapper);
  this.enablePremium(COOKIE_HOST + "String_Node_Str");
}
Program: 20787
Project: 20787
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());
  if (br.containsHTML("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 || filesize == null) {
    logger.warning("String_Node_Str" + filename);
    logger.warning("String_Node_Str" + filesize);
    logger.warning(br.toString());
    throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
  }
  link.setName(filename.trim());
  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());
  if (br.containsHTML("String_Node_Str"))   throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
  if (br.containsHTML(FATALSERVERERROR))   return AvailableStatus.UNCHECKABLE;
  String filename=br.getRegex("String_Node_Str").getMatch(0);
  String filesize=br.getRegex("String_Node_Str").getMatch(0);
  if (filename == null || filesize == null) {
    logger.warning("String_Node_Str" + filename);
    logger.warning("String_Node_Str" + filesize);
    logger.warning(br.toString());
    throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
  }
  link.setName(filename.trim());
  link.setDownloadSize(Regex.getSize(filesize));
  return AvailableStatus.TRUE;
}
Program: 20788
Project: 20788
Buggy source:
@Override public void handleFree(DownloadLink downloadLink) throws Exception {
  requestFileInformation(downloadLink);
  if (!downloadLink.isAvailable()) {
    throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
  }
  br.setFollowRedirects(true);
  br.getPage(downloadLink.getDownloadURL());
  handleFree0(downloadLink);
}

Fixed version (ground truth):
@Override public void handleFree(DownloadLink downloadLink) throws Exception {
  requestFileInformation(downloadLink);
  if (!downloadLink.isAvailable())   throw new PluginException(LinkStatus.ERROR_FILE_NOT_FOUND);
  br.setFollowRedirects(true);
  br.getPage(downloadLink.getDownloadURL());
  handleFree0(downloadLink);
}
Program: 20789
Project: 20789
Buggy source:
public void handleFree0(DownloadLink link) throws Exception {
  checkErrors();
  String fileID=br.getRegex(FILEIDREGEX).getMatch(0);
  String code=new Regex(link.getDownloadURL(),CODEREGEX).getMatch(0);
  if (fileID == null || code == null) {
    logger.warning("String_Node_Str");
    throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
  }
  try {
    Thread.sleep(2000);
  }
 catch (  InterruptedException e) {
    return;
  }
  logger.info("String_Node_Str");
  br.postPage(link.getDownloadURL(),"String_Node_Str" + fileID + "String_Node_Str"+ code);
  checkErrors();
  String redirect=getDownloadUrl(link,fileID,code);
  br.setFollowRedirects(false);
  br.setDebug(true);
  dl=jd.plugins.BrowserAdapter.openDownload(br,link,redirect,true,1);
  handleDownloadErrors();
  dl.setFilenameFix(true);
  dl.startDownload();
}

Fixed version (ground truth):
public void handleFree0(DownloadLink link) throws Exception {
  if (!link.getDownloadURL().contains("String_Node_Str"))   link.setUrlDownload(link.getDownloadURL().replace("String_Node_Str","String_Node_Str"));
  checkErrors();
  String fileID=br.getRegex(FILEIDREGEX).getMatch(0);
  String code=new Regex(link.getDownloadURL(),CODEREGEX).getMatch(0);
  if (fileID == null || code == null) {
    logger.warning("String_Node_Str");
    throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
  }
  try {
    Thread.sleep(2000);
  }
 catch (  InterruptedException e) {
    return;
  }
  logger.info("String_Node_Str");
  br.postPage(link.getDownloadURL(),"String_Node_Str" + fileID + "String_Node_Str"+ code);
  checkErrors();
  String redirect=getDownloadUrl(link,fileID,code);
  br.setFollowRedirects(false);
  br.setDebug(true);
  dl=jd.plugins.BrowserAdapter.openDownload(br,link,redirect,true,1);
  handleDownloadErrors();
  dl.setFilenameFix(true);
  dl.startDownload();
}
Program: 20790
Project: 20790
Buggy source:
@Override public void handleFree(DownloadLink downloadLink) throws Exception, PluginException {
  requestFileInformation(downloadLink);
  br.setFollowRedirects(false);
  if (iHaveToWait)   goToSleep(downloadLink);
  URLConnectionAdapter con=br.openGetConnection(downloadLink.getDownloadURL());
  if (con.getContentType().contains("String_Node_Str")) {
    logger.info("String_Node_Str");
    br.followConnection();
    if (br.containsHTML("String_Node_Str")) {
      logger.info("String_Node_Str");
      br.getPage(downloadLink.getStringProperty("String_Node_Str",null));
      goToSleep(downloadLink);
    }
    String finallink=br.getRegex(DLLINKREGEX).getMatch(0);
    if (finallink == null) {
      logger.warning("String_Node_Str");
      throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
    }
    downloadLink.setUrlDownload(finallink);
    con.disconnect();
  }
 else {
    logger.info("String_Node_Str");
  }
  dl=jd.plugins.BrowserAdapter.openDownload(br,downloadLink,downloadLink.getDownloadURL(),true,0);
  if ((dl.getConnection().getContentType().contains("String_Node_Str"))) {
    logger.warning("String_Node_Str");
    logger.warning("String_Node_Str" + downloadLink.getDownloadURL());
    br.followConnection();
    throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
  }
  dl.startDownload();
}

Fixed version (ground truth):
@Override public void handleFree(DownloadLink downloadLink) throws Exception, PluginException {
  requestFileInformation(downloadLink);
  br.setFollowRedirects(false);
  if (iHaveToWait)   goToSleep(downloadLink);
  URLConnectionAdapter con=br.openGetConnection(downloadLink.getDownloadURL());
  if (con.getContentType().contains("String_Node_Str")) {
    logger.info("String_Node_Str");
    br.followConnection();
    if (br.containsHTML("String_Node_Str")) {
      logger.info("String_Node_Str");
      br.getPage(downloadLink.getStringProperty("String_Node_Str",null));
      goToSleep(downloadLink);
    }
    String finallink=br.getRegex(DLLINKREGEX).getMatch(0);
    if (finallink == null) {
      logger.warning("String_Node_Str");
      throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
    }
    finallink=fixLink(finallink);
    downloadLink.setUrlDownload(finallink);
    con.disconnect();
  }
 else {
    logger.info("String_Node_Str");
  }
  dl=jd.plugins.BrowserAdapter.openDownload(br,downloadLink,downloadLink.getDownloadURL(),true,0);
  if ((dl.getConnection().getContentType().contains("String_Node_Str"))) {
    logger.warning("String_Node_Str");
    logger.warning("String_Node_Str" + downloadLink.getDownloadURL());
    br.followConnection();
    throw new PluginException(LinkStatus.ERROR_PLUGIN_DEFECT);
  }
  dl.startDownload();
}
Program: 20791
Project: 20791
Buggy source:
public void correctDownloadLink(DownloadLink link){
  link.setUrlDownload(link.getDownloadURL().replaceAll("String_Node_Str","String_Node_Str").replace("String_Node_Str","String_Node_Str"));
}

Fixed version (ground truth):
public void correctDownloadLink(DownloadLink link){
  link.setUrlDownload(link.getDownloadURL().replaceAll("String_Node_Str","String_Node_Str"));
}
Program: 20794
Project: 20794
Buggy source:
@Override public ArrayList<DownloadLink> decryptIt(CryptedLink parameter,ProgressController progress) throws Exception {
  decryptedLinks=new ArrayList<DownloadLink>();
  progress.getBroadcaster().addListener(this);
  Regex urlInfo=new Regex(parameter,"String_Node_Str");
  String type=urlInfo.getMatch(0);
  String id=urlInfo.getMatch(1);
  if (type.equals("String_Node_Str")) {
    progress.increase(1);
    String link="String_Node_Str" + id;
    if (!decryptSingleLink(parameter.toString(),progress,decryptedLinks,link))     return null;
  }
 else   if (type.equals("String_Node_Str")) {
    if (fpName == null)     fpName=br.getRegex("String_Node_Str").getMatch(0);
    if (!decryptLiveset(parameter.toString(),progress,decryptedLinks))     return null;
  }
 else   if (type.equals("String_Node_Str") || type.equals("String_Node_Str")) {
    br.getPage(parameter.toString());
    String[] allLivesets=br.getRegex("String_Node_Str").getColumn(0);
    if (allLivesets == null || allLivesets.length == 0)     return null;
    if (fpName == null)     fpName=br.getRegex("String_Node_Str").getMatch(0);
    progress.setRange(allLivesets.length);
    for (    String aLiveset : allLivesets) {
      if (!decryptLiveset(aLiveset,progress,decryptedLinks))       return null;
      Thread.sleep(1000);
    }
  }
  return decryptedLinks;
}

Fixed version (ground truth):
@Override public ArrayList<DownloadLink> decryptIt(CryptedLink parameter,ProgressController progress) throws Exception {
  decryptedLinks=new ArrayList<DownloadLink>();
  try {
    progress.getBroadcaster().addListener(this);
  }
 catch (  Throwable e) {
  }
  Regex urlInfo=new Regex(parameter,"String_Node_Str");
  String type=urlInfo.getMatch(0);
  String id=urlInfo.getMatch(1);
  if (type.equals("String_Node_Str")) {
    progress.increase(1);
    String link="String_Node_Str" + id;
    if (!decryptSingleLink(parameter.toString(),progress,decryptedLinks,link))     return null;
  }
 else   if (type.equals("String_Node_Str")) {
    if (fpName == null)     fpName=br.getRegex("String_Node_Str").getMatch(0);
    if (!decryptLiveset(parameter.toString(),progress,decryptedLinks))     return null;
  }
 else   if (type.equals("String_Node_Str") || type.equals("String_Node_Str")) {
    br.getPage(parameter.toString());
    String[] allLivesets=br.getRegex("String_Node_Str").getColumn(0);
    if (allLivesets == null || allLivesets.length == 0)     return null;
    if (fpName == null)     fpName=br.getRegex("String_Node_Str").getMatch(0);
    progress.setRange(allLivesets.length);
    for (    String aLiveset : allLivesets) {
      if (!decryptLiveset(aLiveset,progress,decryptedLinks))       return null;
      Thread.sleep(1000);
    }
  }
  return decryptedLinks;
}