Program: 102399
Project: 102399
Buggy source:
/** 
 * @param receiversMap
 * @param templateContext
 * @return
 */
public static String getMessageByIds(Map<String,List<String>> receiversMap,TemplateContext templateContext,String type){
  StringBuilder sb=new StringBuilder();
  for (  Entry<String,List<String>> entry : receiversMap.entrySet()) {
    sb.append("String_Node_Str");
    String targetId=entry.getKey();
    List<String> values=entry.getValue();
    int count=values.size();
    String[] keys=new String[]{"String_Node_Str","String_Node_Str","String_Node_Str"};
    if ("String_Node_Str".equals(type)) {
      keys=new String[]{"String_Node_Str","String_Node_Str","String_Node_Str"};
    }
    String key="String_Node_Str";
    StringBuilder value=new StringBuilder();
    for (int i=0; i < count && i < 3; i++) {
      String name="String_Node_Str";
      if ("String_Node_Str".equals(type) || "String_Node_Str".equals(type) || "String_Node_Str".equals(type)) {
        Identity identity=Utils.getIdentityManager().getOrCreateIdentity(OrganizationIdentityProvider.NAME,values.get(i),true);
        name=identity.getProfile().getFullName();
      }
 else {
        Space space=Utils.getSpaceService().getSpaceById(values.get(i));
        name=space.getDisplayName();
      }
      if (i > 1 && count == 3) {
        key=keys[i - 1];
      }
 else {
        key=keys[i];
      }
      value.append(SocialNotificationUtils.buildRedirecUrl("String_Node_Str".equals(type) ? "String_Node_Str" : type,values.get(i),name));
      if (count > (i + 1) && i < 2) {
        value.append("String_Node_Str");
      }
    }
    templateContext.put(key,value.toString());
    if (count > 3) {
      if ("String_Node_Str".equals(type)) {
        templateContext.put("String_Node_Str",SocialNotificationUtils.buildRedirecUrl("String_Node_Str",targetId,String.valueOf((count - 3))));
        templateContext.put("String_Node_Str",LinkProviderUtils.getRedirectUrl("String_Node_Str",targetId));
      }
 else       if ("String_Node_Str".equals(type)) {
        templateContext.put("String_Node_Str",SocialNotificationUtils.buildRedirecUrl("String_Node_Str",targetId,String.valueOf((count - 3))));
      }
 else       if ("String_Node_Str".equals(type)) {
        templateContext.put("String_Node_Str",SocialNotificationUtils.buildRedirecUrl("String_Node_Str","String_Node_Str",String.valueOf((count - 3))));
      }
 else {
        templateContext.put("String_Node_Str",SocialNotificationUtils.buildRedirecUrl("String_Node_Str",targetId,String.valueOf((count - 3))));
      }
    }
 else {
      if ("String_Node_Str".equals(type)) {
        templateContext.put("String_Node_Str",LinkProviderUtils.getRedirectUrl("String_Node_Str",targetId));
      }
    }
    String digester=TemplateUtils.processDigest(templateContext.digestType(count));
    sb.append(digester);
    sb.append("String_Node_Str");
  }
  return sb.toString();
}

Fixed version (ground truth):
/** 
 * @param receiversMap
 * @param templateContext
 * @param type
 * @return
 */
public static String getMessageByIds(Map<String,List<String>> receiversMap,TemplateContext templateContext,String type){
  StringBuilder sb=new StringBuilder();
  for (  Entry<String,List<String>> entry : receiversMap.entrySet()) {
    sb.append("String_Node_Str");
    String targetId=entry.getKey();
    List<String> values=entry.getValue();
    int count=values.size();
    String[] keys=new String[]{"String_Node_Str","String_Node_Str","String_Node_Str"};
    if ("String_Node_Str".equals(type)) {
      keys=new String[]{"String_Node_Str","String_Node_Str","String_Node_Str"};
    }
    String key="String_Node_Str";
    StringBuilder value=new StringBuilder();
    for (int i=0; i < count && i < 3; i++) {
      String name="String_Node_Str";
      if ("String_Node_Str".equals(type) || "String_Node_Str".equals(type) || "String_Node_Str".equals(type)) {
        Identity identity=Utils.getIdentityManager().getOrCreateIdentity(OrganizationIdentityProvider.NAME,values.get(i),true);
        name=identity.getProfile().getFullName();
      }
 else {
        Space space=Utils.getSpaceService().getSpaceById(values.get(i));
        name=space.getDisplayName();
      }
      if (i > 1 && count == 3) {
        key=keys[i - 1];
      }
 else {
        key=keys[i];
      }
      value.append(SocialNotificationUtils.buildRedirecUrl("String_Node_Str".equals(type) ? "String_Node_Str" : type,values.get(i),name));
      if (count > (i + 1) && i < 2) {
        value.append("String_Node_Str");
      }
    }
    templateContext.put(key,value.toString());
    if (count > 3) {
      if ("String_Node_Str".equals(type)) {
        templateContext.put("String_Node_Str",SocialNotificationUtils.buildRedirecUrl("String_Node_Str",targetId,String.valueOf((count - 3))));
        templateContext.put("String_Node_Str",LinkProviderUtils.getRedirectUrl("String_Node_Str",targetId));
      }
 else       if ("String_Node_Str".equals(type)) {
        templateContext.put("String_Node_Str",SocialNotificationUtils.buildRedirecUrl("String_Node_Str",targetId,String.valueOf((count - 3))));
      }
 else       if ("String_Node_Str".equals(type)) {
        templateContext.put("String_Node_Str",SocialNotificationUtils.buildRedirecUrl("String_Node_Str","String_Node_Str",String.valueOf((count - 3))));
      }
 else {
        templateContext.put("String_Node_Str",SocialNotificationUtils.buildRedirecUrl("String_Node_Str",targetId,String.valueOf((count - 3))));
      }
    }
 else {
      if ("String_Node_Str".equals(type)) {
        templateContext.put("String_Node_Str",LinkProviderUtils.getRedirectUrl("String_Node_Str",targetId));
      }
    }
    String digester=TemplateUtils.processDigest(templateContext.digestType(count));
    sb.append(digester);
    sb.append("String_Node_Str");
  }
  return sb.toString();
}