Program: 99305
Project: 99305
Buggy source:
public void processFile(String path){
  try {
    System.out.println("String_Node_Str" + path);
    ResourceProducer producer=ProducerUtils.getProducer(path);
    ResourceFactoryMapper mapper=new ExtractingResourceFactoryMapper();
    ExtractingResourceProducer exProducer=new ExtractingResourceProducer(producer,mapper);
    Resource resource=null;
    resource=exProducer.getNext();
    while (resource != null) {
      resource=exProducer.getNext();
      if (resource instanceof HTTPResponseResource) {
        String url=JSONUtils.extractSingle(resource.getMetaData().getTopMetaData(),"String_Node_Str");
        HTTPResponseResource httpResp=(HTTPResponseResource)resource;
        HttpResponse response=httpResp.getHttpResponse();
        int status=response.getMessage().getStatus();
        if (url.endsWith("String_Node_Str")) {
          if (jedis != null) {
            if (jedis.exists(url)) {
              dupCount++;
              continue;
            }
          }
 else {
            if (urlDB.contains(url)) {
              dupCount++;
              continue;
            }
            urlDB.add(url);
          }
          String contents=IOUtils.toString(httpResp.getHttpResponse().getInner(),"String_Node_Str");
          int size=contents.length();
          System.out.println("String_Node_Str" + status + "String_Node_Str"+ url+ "String_Node_Str"+ size);
          totalSize+=contents.length();
          totalFiles++;
          if (status == 200) {
            totalSuccessSize+=contents.length();
            totalSuccessFiles++;
            if (jedis != null) {
              jedis.setex(url,60 * 60 * 4,contents);
            }
          }
        }
      }
    }
  }
 catch (  IOException e) {
    e.printStackTrace();
  }
catch (  ResourceParseException e) {
    e.printStackTrace();
  }
catch (  Exception e) {
    e.printStackTrace();
  }
}

Fixed version (ground truth):
public void processFile(String path){
  try {
    System.out.println("String_Node_Str" + path);
    ResourceProducer producer=ProducerUtils.getProducer(path);
    ResourceFactoryMapper mapper=new ExtractingResourceFactoryMapper();
    ExtractingResourceProducer exProducer=new ExtractingResourceProducer(producer,mapper);
    Resource resource=null;
    resource=exProducer.getNext();
    while (resource != null) {
      resource=exProducer.getNext();
      if (resource instanceof HTTPResponseResource) {
        String url=JSONUtils.extractSingle(resource.getMetaData().getTopMetaData(),"String_Node_Str");
        HTTPResponseResource httpResp=(HTTPResponseResource)resource;
        HttpResponse response=httpResp.getHttpResponse();
        int status=response.getMessage().getStatus();
        if (url.endsWith("String_Node_Str")) {
          if (jedis != null) {
            if (jedis.exists(url)) {
              dupCount++;
              continue;
            }
          }
 else {
            if (urlDB.contains(url)) {
              dupCount++;
              continue;
            }
            urlDB.add(url);
          }
          String contents=IOUtils.toString(response.getInner(),"String_Node_Str");
          String contentType=response.getHeaders().getValue("String_Node_Str");
          int size=contents.length();
          System.out.println("String_Node_Str" + status + "String_Node_Str"+ url+ "String_Node_Str"+ size+ "String_Node_Str"+ contentType);
          totalSize+=contents.length();
          totalFiles++;
          if (status == 200) {
            totalSuccessSize+=contents.length();
            totalSuccessFiles++;
            if (jedis != null) {
              jedis.setex(url,60 * 60 * 4,contents);
            }
          }
        }
      }
    }
  }
 catch (  IOException e) {
    e.printStackTrace();
  }
catch (  ResourceParseException e) {
    e.printStackTrace();
  }
catch (  Exception e) {
    e.printStackTrace();
  }
}