Program: 153981
Project: 153981
Buggy source:
/** 
 * Saves crawled content into db
 * @param query
 */
public void processResource(Query query){
  CrawlerConsole.print("String_Node_Str" + query.getOriginalURL().toString());
  if (query.getResource().getContentMimeSubType().equals("String_Node_Str")) {
    String html=getCrawledHtml(query);
    String url=query.getOriginalURL().toString();
    String host=query.getHost();
    if (url.split("String_Node_Str").length < 4) {
      url=url + "String_Node_Str";
    }
    String baseUrl=url.substring(0,url.lastIndexOf('/') + 1);
    Document doc=Jsoup.parse(html,baseUrl);
    LinksExtractor extractor=new LinksExtractor(doc);
    Set<String> links=extractor.getInternalLinks(host);
    for (    String link : links) {
      pool.addURL(link);
    }
    ContentExtractor contentExtractor=new ContentExtractor(doc);
    Page page=new Page(query.getOriginalURL().toString(),host);
    if (contentExtractor.hasMetaDescription()) {
      page.setDescription(contentExtractor.getMetaDescription());
    }
    if (contentExtractor.hasMetaKeywords()) {
      page.setKeywords(contentExtractor.getMetaKeywords());
    }
    if (contentExtractor.hasMetaCharset()) {
      page.setCharset(contentExtractor.getMetaCharset());
    }
    String bodyText=doc.body().text();
    String bodyHtml=doc.body().toString();
    BodyContent bodyContent=new BodyContent(page.getUrl(),bodyHtml,bodyText);
    DbConnector conn=new DbConnector();
    CrawledPageController controller=new CrawledPageController(conn.getConnection());
    controller.save(page,bodyContent);
  }
}

Fixed version (ground truth):
/** 
 * Saves crawled content into db
 * @param query
 */
public void processResource(Query query){
  CrawlerConsole.print("String_Node_Str" + query.getOriginalURL().toString());
  if (query.getResource().getContentMimeSubType() != null) {
    if (query.getResource().getContentMimeSubType().contains("String_Node_Str")) {
      String html=getCrawledHtml(query);
      String url=query.getOriginalURL().toString();
      String host=query.getHost();
      if (url.split("String_Node_Str").length < 4) {
        url=url + "String_Node_Str";
      }
      String baseUrl=url.substring(0,url.lastIndexOf('/') + 1);
      Document doc=Jsoup.parse(html,baseUrl);
      LinksExtractor extractor=new LinksExtractor(doc);
      Set<String> links=extractor.getInternalLinks(host);
      for (      String link : links) {
        pool.addURL(link);
      }
      ContentExtractor contentExtractor=new ContentExtractor(doc);
      Page page=new Page(query.getOriginalURL().toString(),host);
      if (contentExtractor.hasMetaDescription()) {
        page.setDescription(contentExtractor.getMetaDescription());
      }
      if (contentExtractor.hasMetaKeywords()) {
        page.setKeywords(contentExtractor.getMetaKeywords());
      }
      if (contentExtractor.hasMetaCharset()) {
        page.setCharset(contentExtractor.getMetaCharset());
      }
      String bodyText=doc.body().text();
      String bodyHtml=doc.body().toString();
      BodyContent bodyContent=new BodyContent(page.getUrl(),bodyHtml,bodyText);
      DbConnector conn=new DbConnector();
      CrawledPageController controller=new CrawledPageController(conn.getConnection());
      controller.save(page,bodyContent);
    }
 else {
      System.out.println(query.getResource().getContentMimeSubType());
    }
  }
}