DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUGĀ· RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT <http://issues.apache.org/bugzilla/show_bug.cgi?id=41186>. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED ANDĀ· INSERTED IN THE BUG DATABASE.
http://issues.apache.org/bugzilla/show_bug.cgi?id=41186 Summary: AsyncAppender in 1.2.14 DiscardSummary events create NullPointerExceptions in layouts Product: Log4j Version: 1.2 Platform: All OS/Version: All Status: NEW Severity: normal Priority: P2 Component: Appender AssignedTo: [email protected] ReportedBy: [EMAIL PROTECTED] The 1.2.14 version of the AsyncAppender creates LoggingEvent's from DiscardSummary objects with null fqnOfCategoryClass. This causes layouts that call getLocationInformation() on the LoggingEvent to throw a NullPointerException: Exception in thread "Dispatcher-Thread-6" java.lang.NullPointerException at java.lang.String.lastIndexOf(Unknown Source) at java.lang.String.lastIndexOf(Unknown Source) at org.apache.log4j.spi.LocationInfo.<init>(LocationInfo.java:119) at org.apache.log4j.spi.LoggingEvent.getLocationInformation(LoggingEvent.java:191) at org.apache.log4j.helpers.PatternParser$ClassNamePatternConverter.getFullyQualifiedName(PatternParser.java:538) at org.apache.log4j.helpers.PatternParser$NamedPatternConverter.convert(PatternParser.java:511) at org.apache.log4j.helpers.PatternConverter.format(PatternConverter.java:64) at org.apache.log4j.PatternLayout.format(PatternLayout.java:503) at org.apache.log4j.WriterAppender.subAppend(WriterAppender.java:301) at org.apache.log4j.WriterAppender.append(WriterAppender.java:159) at org.apache.log4j.AppenderSkeleton.doAppend(AppenderSkeleton.java:230) at org.apache.log4j.helpers.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:65) at org.apache.log4j.AsyncAppender$Dispatcher.run(AsyncAppender.java:578) at java.lang.Thread.run(Unknown Source) This kills off the Dispatcher thread, reverting to synchronous logging. Steps to Reproduce: 1. Configure an appender with a PatternLayout that retrieves LocationInfo: <appender name="TestAppender" class="org.apache.log4j.FileAppender"> <param name="file" value="/tmp/afile.log" /> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%C:%L %m%n" /> </layout> </appender> 2. Configure a second AsyncAppender that references the first appender as follows: <appender name="MyAsyncAppender" class="org.apache.log4j.AsyncAppender"> <param name="locationInfo" value="true" /> <param name="blocking" value="false" /> <param name="bufferSize" value="1" /> <appender-ref ref="TestAppender" /> </appender> 3. Create a scenario where the buffer in the AsyncAppender fills up, generating discard events. (Should be pretty easy with a bufferSize=1) -- Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
