Uploaded image for project: 'Log4j 2'
  1. Log4j 2
  2. LOG4J2-176

IllegalArgumentException during AsyncAppender shutdown

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 2.0-beta4
    • Fix Version/s: 2.0-beta5
    • Component/s: Core
    • Labels:
      None
    • Environment:

      Windows 2000, JDK1.6.0_031, single-cpu machine, multiple threads calling Logger.log

      Description

      I am seeing the following exception:
      Exception in thread "Thread-7" java.lang.IllegalArgumentException: Event is not a serialized LogEvent: Shutdown
      at org.apache.logging.log4j.core.impl.Log4jLogEvent.deserialize(Log4jLogEvent.java:303)
      at org.apache.logging.log4j.core.appender.AsynchAppender$AsynchThread.run(AsynchAppender.java:229)

      (I cannot reproduce this on other platforms)

      I think this is what is happening:
      [AppThread] calls ((LifeCycle) LogManager.getContext()).stop();
      [AppThread] sets AsyncAppender.shutdown field to true (line 240)
      [AsyncThread] breaks out of while(!shutdown) loop (line 196)
      [AppThread] adds String "Shutdown" to queue
      [AsyncThread] processes remaining items in the queue, tries to deserialize String "Shutdown" -> Error

      Solution:
      replace AsyncAppender line 229:
      final Log4jLogEvent event = Log4jLogEvent.deserialize(queue.take());
      with
      Serializable s = queue.take();
      if (SHUTDOWN.equals(s))

      { continue; }

      // or break?
      final Log4jLogEvent event = Log4jLogEvent.deserialize(s);
      ....

      I don't think this is a major issue as the AsyncThread will exit its run() method (so JVM can exit), it just looks a bit sloppy.

        Attachments

          Activity

            People

            • Assignee:
              ralph.goers@dslextreme.com Ralph Goers
              Reporter:
              remkop@yahoo.com Remko Popma
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: