https://issues.apache.org/bugzilla/show_bug.cgi?id=48820

           Summary: JDBCAppender inserts the current MDC values for the
                    previous logging event after failure
           Product: Log4j
           Version: 1.2
          Platform: PC
        OS/Version: Windows XP
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Appender
        AssignedTo: [email protected]
        ReportedBy: [email protected]


event.getThreadName();
    event.getNDC();
    event.getMDCCopy();
must be invoked to import thread dependent values into event.

See org.apache.log4j.net.SMTPAppender.append(LoggingEvent event).
It invokes above methods because SMTPAppender uses a buffer like JDBCAppender.

I think
  public void append(LoggingEvent event) {
    buffer.add(event);

    if (buffer.size() >= bufferSize)
      flushBuffer();
  }
should be like
  public void append(LoggingEvent event) {
    event.getThreadName();
    event.getNDC();
    event.getMDCCopy();
    buffer.add(event);

    if (buffer.size() >= bufferSize)
      flushBuffer();
  }
or
  public void append(LoggingEvent event) {

    buffer.add(event);

    if (buffer.size() >= bufferSize)
      flushBuffer();
    int size = buffer.size();
    if (size > 0 && buffer.get(size - 1) == event) {
      event.getThreadName();
      event.getNDC();
      event.getMDCCopy();
    }
  }

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to