Program: 102467
Project: 102467
Buggy source:
@Override public MessageInfo makeMessage(NotificationContext ctx){
  MessageInfo messageInfo=new MessageInfo();
  NotificationInfo notification=ctx.getNotificationInfo();
  String language=getLanguage(notification);
  TemplateContext templateContext=new TemplateContext(notification.getKey().getId(),language);
  SocialNotificationUtils.addFooterAndFirstName(notification.getTo(),templateContext);
  String activityId=notification.getValueOwnerParameter(SocialNotificationUtils.ACTIVITY_ID.getKey());
  ExoSocialActivity activity=Utils.getActivityManager().getActivity(activityId);
  Identity identity=Utils.getIdentityManager().getIdentity(activity.getPosterId(),true);
  templateContext.put("String_Node_Str",identity.getProfile().getFullName());
  String subject=TemplateUtils.processSubject(templateContext);
  if (activity.isComment()) {
    ExoSocialActivity parentActivity=Utils.getActivityManager().getParentActivity(activity);
    activityId=parentActivity.getId();
    templateContext.put("String_Node_Str",LinkProviderUtils.getRedirectUrl("String_Node_Str",activityId + "String_Node_Str" + activity.getId()));
    templateContext.put("String_Node_Str",LinkProviderUtils.getRedirectUrl("String_Node_Str",activityId + "String_Node_Str" + activity.getId()));
  }
 else {
    templateContext.put("String_Node_Str",LinkProviderUtils.getRedirectUrl("String_Node_Str",activityId));
    templateContext.put("String_Node_Str",LinkProviderUtils.getRedirectUrl("String_Node_Str",activityId));
  }
  templateContext.put("String_Node_Str",LinkProviderUtils.getUserAvatarUrl(identity.getProfile()));
  templateContext.put("String_Node_Str",LinkProviderUtils.getRedirectUrl("String_Node_Str",identity.getRemoteId()));
  templateContext.put("String_Node_Str",Utils.processMentions(activity.getTitle()));
  String body=TemplateUtils.processGroovy(templateContext);
  return messageInfo.subject(subject).body(body).end();
}

Fixed version (ground truth):
@Override public MessageInfo makeMessage(NotificationContext ctx){
  MessageInfo messageInfo=new MessageInfo();
  NotificationInfo notification=ctx.getNotificationInfo();
  String language=getLanguage(notification);
  TemplateContext templateContext=new TemplateContext(notification.getKey().getId(),language);
  SocialNotificationUtils.addFooterAndFirstName(notification.getTo(),templateContext);
  String activityId=notification.getValueOwnerParameter(SocialNotificationUtils.ACTIVITY_ID.getKey());
  ExoSocialActivity activity=Utils.getActivityManager().getActivity(activityId);
  Identity identity=Utils.getIdentityManager().getIdentity(activity.getPosterId(),true);
  templateContext.put("String_Node_Str",identity.getProfile().getFullName());
  String subject=TemplateUtils.processSubject(templateContext);
  templateContext.put("String_Node_Str",LinkProviderUtils.getUserAvatarUrl(identity.getProfile()));
  templateContext.put("String_Node_Str",LinkProviderUtils.getRedirectUrl("String_Node_Str",identity.getRemoteId()));
  String body="String_Node_Str";
  if (activity.isComment()) {
    ExoSocialActivity parentActivity=Utils.getActivityManager().getParentActivity(activity);
    activityId=parentActivity.getId();
    templateContext.put("String_Node_Str",LinkProviderUtils.getRedirectUrl("String_Node_Str",activityId + "String_Node_Str" + activity.getId()));
    templateContext.put("String_Node_Str",LinkProviderUtils.getRedirectUrl("String_Node_Str",activityId + "String_Node_Str" + activity.getId()));
    templateContext.put("String_Node_Str",NotificationUtils.processLinkTitle(activity.getTitle()));
    body=TemplateUtils.processGroovy(templateContext);
  }
 else {
    templateContext.put("String_Node_Str",LinkProviderUtils.getRedirectUrl("String_Node_Str",activityId));
    templateContext.put("String_Node_Str",LinkProviderUtils.getRedirectUrl("String_Node_Str",activityId));
    body=SocialNotificationUtils.getBody(ctx,templateContext,activity);
  }
  return messageInfo.subject(subject).body(body).end();
}