Program: 13200
Project: 13200
Buggy source:
/** 
 * {@inheritDoc}
 */
@Override public void log(ServerContext context,Request request,String message,String objectId,JsonValue before,JsonValue after,Status status) throws ResourceException {
  if (null == request) {
    throw new NullPointerException("String_Node_Str");
  }
  try {
    String authenticationId=getRequester(context);
    String revision=getRevision(before,after);
    boolean passwordChanged=false;
    String[] changedFields=new String[0];
    RequestType requestType=request.getRequestType();
    String beforeValue=getJsonForLog(before,requestType);
    String afterValue=getJsonForLog(after,requestType);
    AuditEvent auditEvent=OpenIDMActivityAuditEventBuilder.auditEventBuilder().transactionIdFromRootContext(context).timestamp(System.currentTimeMillis()).eventName(ACTIVITY_EVENT_NAME).authenticationFromSecurityContext(context).runAs(authenticationId).resourceOperationFromRequest(request).before(beforeValue).after(afterValue).changedFields(changedFields).revision(revision).message(message).objectId(objectId).passwordChanged(passwordChanged).status(status).toEvent();
    connectionFactory.getConnection().create(new ServerContext(context),Requests.newCreateRequest(AUDIT_ACTIVITY_PATH,auditEvent.getValue()));
  }
 catch (  ResourceException ex) {
    if (suspendException) {
      logger.warn("String_Node_Str",ex);
    }
 else {
      throw ex;
    }
  }
catch (  Exception ex) {
    if (suspendException) {
      logger.warn("String_Node_Str",ex);
    }
 else {
      throw new InternalServerErrorException(ex.getMessage(),ex);
    }
  }
}

Fixed version (ground truth):
/** 
 * {@inheritDoc}
 */
@Override public void log(ServerContext context,Request request,String message,String objectId,JsonValue before,JsonValue after,Status status) throws ResourceException {
  if (null == request) {
    throw new NullPointerException("String_Node_Str");
  }
  try {
    String authenticationId=getRequester(context);
    String revision=getRevision(before,after);
    boolean passwordChanged=false;
    String[] changedFields=new String[0];
    RequestType requestType=request.getRequestType();
    String beforeValue=getJsonForLog(before,requestType);
    String afterValue=getJsonForLog(after,requestType);
    AuditEvent auditEvent=OpenIDMActivityAuditEventBuilder.auditEventBuilder().transactionIdFromRootContext(context).timestamp(System.currentTimeMillis()).eventName(ACTIVITY_EVENT_NAME).authenticationFromSecurityContext(context).runAs(authenticationId).resourceOperationFromRequest(request).before(beforeValue).after(afterValue).changedFields(changedFields).revision(revision).message(message).objectId(objectId).passwordChanged(passwordChanged).status(status).toEvent();
    connectionFactory.getConnection().create(context,Requests.newCreateRequest(AUDIT_ACTIVITY_PATH,auditEvent.getValue()));
  }
 catch (  ResourceException ex) {
    if (suspendException) {
      logger.warn("String_Node_Str",ex);
    }
 else {
      throw ex;
    }
  }
catch (  Exception ex) {
    if (suspendException) {
      logger.warn("String_Node_Str",ex);
    }
 else {
      throw new InternalServerErrorException(ex.getMessage(),ex);
    }
  }
}