private void editComment(
      IssueChangeHolder issueChangeHolder, Map<String, Object> commentParams, String body) {
    final ApplicationUser user = authenticationContext.getUser();
    final long commentId = Long.valueOf((String) commentParams.get(PARAM_COMMENT_ID));
    final ErrorCollection errorCollection = new SimpleErrorCollection();

    MutableComment mutableComment =
        commentService.getMutableComment(user, commentId, errorCollection);
    CommentParametersBuilder builder = CommentParameters.builder(mutableComment);

    if (StringUtils.isNotBlank(body)) {
      builder.body(body);
    }
    String groupLevel = (String) commentParams.get(PARAM_GROUP_LEVEL);
    String roleLevelIdStr = (String) commentParams.get(PARAM_ROLE_LEVEL);
    builder.visibility(Visibilities.fromGroupAndStrRoleId(groupLevel, roleLevelIdStr));
    builder.commentProperties(getCommentPropertiesQuietly(commentParams));

    final CommentService.CommentUpdateValidationResult validationResult =
        commentService.validateCommentUpdate(user, commentId, builder.build());
    if (validationResult.isValid()) {
      commentService.update(user, validationResult, true);
      issueChangeHolder.setComment(mutableComment);
    } else {
      log.error(
          "Error updating comment id '"
              + commentId
              + "' Error(s): '"
              + errorCollection.toString()
              + "'");
    }
  }