docs: @Override
      public void sendEvent(AuditEvent event) {
  
          if (event == null) {
              emitSavedEvents();
          } else {
              String en = (String) event.getMap().get(AuditEvent.EVENTNAME);
              String eo = (String) event.getMap().get(AuditEvent.OUTCOME);
              if (isAuditRequired(en, eo)) {
  
                  synchronized (syncSeqNum) {
                      if (event.getTarget().get(AuditEvent.TARGET_ID) == "null" || event.getTarget().get(AuditEvent.TARGET_ID) == null) {
                          event.set(AuditEvent.TARGET_ID, getServerID());
                      }
                      if (event.getObserver().get(AuditEvent.OBSERVER_ID) == "null" || event.getObserver().get(AuditEvent.OBSERVER_ID) == null) {
                          event.set(AuditEvent.OBSERVER_ID, getServerID());
                      }
  
                      if (tc.isDebugEnabled()) {
                          Tr.debug(tc, "sendEvent, bufferMgr = " + bufferMgr + " saved_bufferMgr = " + saved_bufferMgr);
                      }
  
                      if (bufferMgr != null && saved_bufferMgr != null) {
                          event.set(AuditConstants.EVENT_SEQUENCE_NUMBER, eventSequenceNumber++);
  
                          GenericData gdo = new GenericData();
                          gdo.setSourceName("com.ibm.ws.audit.source.auditsource");
                          long dateVal = System.currentTimeMillis();
                          gdo.addPair(LogFieldConstants.IBM_DATETIME, dateVal);
                          gdo.addPair(LogFieldConstants.IBM_SEQUENCE, sequenceNumber.next(dateVal));
                          gdo.addPair(LogFieldConstants.IBM_THREADID, new Integer((int) Thread.currentThread().getId()));
                          gdo = map2GenericData(gdo, event.getMap());
  
                          final GenericData f_gdo = gdo;
                          AccessController.doPrivileged(new PrivilegedAction<Void>() {
                              @Override
                              public Void run() {
                                  bufferMgr.add(f_gdo);
                                  return null;
                              }
                          });
  
                          if (tc.isDebugEnabled()) {
                              Tr.debug(tc, "gdo: " + gdo.toString());
                          }
  
                      } else {
                          if (tc.isDebugEnabled()) {
                              Tr.debug(tc, "sendEvent, savedEventIndex = " + savedEventIndex + " saved event: " + event.toString());
                          }
                          savedEvent[savedEventIndex++] = event;
                      }
                  }
  
              }
  
          }
  
      }