Program: 117708
Project: 117708
Buggy source:
private Topic parseAccount(JSONObject account,HashMap<String,Topic> thingTypes,TopicMap tm) throws JSONException, TopicMapException {
  if (forceStop()) {
    return null;
  }
  JSONObject accountData=account.getJSONObject("String_Node_Str");
  String kind=account.getString("String_Node_Str");
  String id=accountData.getString("String_Node_Str");
  log("String_Node_Str" + id);
  Topic accountTopic=getOrCreateTopic(tm,SI_ROOT + id);
  accountTopic.setDisplayName("String_Node_Str",id);
  accountTopic.setBaseName(id);
  addAccountOccurenceData(tm,accountData,accountTopic);
  accountTopic.addType(thingTypes.get(kind));
  if (CRAWL_SETTINGS.get("String_Node_Str")) {
    ParseCallback<JsonNode> callback=new ParseCallback<JsonNode>(tm,thingTypes){
      @Override public void run(      HttpResponse<JsonNode> response){
        try {
          JSONObject respObj=response.getBody().getObject();
          parseThing(respObj,tm,thingTypes);
        }
 catch (        Exception e) {
        }
      }
    }
;
    requester.doRequest(Unirest.get(apiRoot + "String_Node_Str" + id+ "String_Node_Str"),callback);
  }
  if (CRAWL_SETTINGS.get("String_Node_Str")) {
    ParseCallback<JsonNode> callback=new ParseCallback<JsonNode>(tm,thingTypes){
      @Override public void run(      HttpResponse<JsonNode> response){
        try {
          JSONObject respObj=response.getBody().getObject();
          parseThing(respObj,tm,thingTypes);
        }
 catch (        Exception e) {
        }
      }
    }
;
    requester.doRequest(Unirest.get(apiRoot + "String_Node_Str" + id+ "String_Node_Str"),callback);
  }
  return accountTopic;
}

Fixed version (ground truth):
private Topic parseAccount(JSONObject account,HashMap<String,Topic> thingTypes,TopicMap tm) throws JSONException, TopicMapException {
  if (forceStop()) {
    return null;
  }
  JSONObject accountData=account.getJSONObject("String_Node_Str");
  String kind=account.getString("String_Node_Str");
  String id=accountData.getString("String_Node_Str");
  log("String_Node_Str" + id);
  Topic accountTopic=getOrCreateTopic(tm,SI_ROOT + id);
  accountTopic.setDisplayName("String_Node_Str",id);
  accountTopic.setBaseName(id);
  addAccountOccurenceData(tm,accountData,accountTopic);
  accountTopic.addType(thingTypes.get(kind));
  if (CRAWL_SETTINGS.get("String_Node_Str")) {
    ParseCallback<JsonNode> callback=new ParseCallback<JsonNode>(tm,thingTypes){
      @Override public void run(      HttpResponse<JsonNode> response){
        try {
          JSONObject respObj=response.getBody().getObject();
          parseThing(respObj,tm,thingTypes);
        }
 catch (        Exception e) {
          log(e.getMessage());
        }
      }
      @Override protected void error(      Exception e,      String body){
        log(e.getMessage());
        if (body != null) {
          log("String_Node_Str");
          log(body);
        }
      }
    }
;
    requester.doRequest(Unirest.get(apiRoot + "String_Node_Str" + id+ "String_Node_Str"),callback);
  }
  if (CRAWL_SETTINGS.get("String_Node_Str")) {
    ParseCallback<JsonNode> callback=new ParseCallback<JsonNode>(tm,thingTypes){
      @Override public void run(      HttpResponse<JsonNode> response){
        try {
          JSONObject respObj=response.getBody().getObject();
          parseThing(respObj,tm,thingTypes);
        }
 catch (        Exception e) {
          log(e.getMessage());
        }
      }
      @Override protected void error(      Exception e,      String body){
        log(e.getMessage());
        if (body != null) {
          log("String_Node_Str");
          log(body);
        }
      }
    }
;
    requester.doRequest(Unirest.get(apiRoot + "String_Node_Str" + id+ "String_Node_Str"),callback);
  }
  return accountTopic;
}