[prev in list] [next in list] [prev in thread] [next in thread] 

List:       log4j-dev
Subject:    DO NOT REPLY [Bug 11570] New:  -
From:       bugzilla () apache ! org
Date:       2002-08-08 20:24:31
[Download RAW message or body]

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id570>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id570

XML Appender throws NullPointerException when logging null

           Summary: XML Appender throws NullPointerException when logging
                    null
           Product: Log4j
           Version: 1.2
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: Critical
          Priority: Other
         Component: Appender
        AssignedTo: log4j-dev@jakarta.apache.org
        ReportedBy: dvandegrift@bluearc.com


Overview Description:

When calling log.error(null), a NullPointerException is thrown.  See the stack
trace below.

Of course, I wasn't calling log.error(null) in my code.  Rather, I was logging
an exception message as such:
   log.error(e.getMessage())  <-- triggered exception
But the exception message was null so log4j threw an NullPointerException.

Steps to Reproduce:
1. Setup the following XML Appender section in your log4j.properties file.
######## XML SECTION ##################
# XML is a RollingFileAppender
#######################################
log4j.appender.XML=org.apache.log4j.RollingFileAppender
log4j.appender.XML.file=${base-path}logs/mgr_log.xml
log4j.appender.XML.MaxFileSize MB
log4j.appender.XML.MaxBackupIndex=5
log4j.appender.XML.layout=org.apache.log4j.xml.XMLLayout
log4j.appender.XML.append=true

2. Create a class with the following line:
   log.error(null)

3. Or use the following try/catch block
   try {
       throw new Exception();
   }
   catch (Exception e) {
       log.error(e, e);              // works as expected
       log.error("bug found", e);    // works as expected
       log.error(e.getMessage());    // throws NullPointerException
       log.error(e.getMessage(), e); // throws NullPointerException
   }


Actual Results:
A NullPointerException is thrown as represented in the following stack trace:

######### Stack Trace ###############
java.lang.NullPointerException
 at org.apache.log4j.helpers.Transform.appendEscapingCDATA(Transform.java:74)
 at org.apache.log4j.xml.XMLLayout.format(Unknown Source)
 at org.apache.log4j.WriterAppender.subAppend(WriterAppender.java:292)
 at org.apache.log4j.RollingFileAppender.subAppend(RollingFileAppender.java:225)
 at org.apache.log4j.WriterAppender.append(WriterAppender.java:150)
 at org.apache.log4j.AppenderSkeleton.doAppend(AppenderSkeleton.java:221)
at
org.apache.log4j.helpers.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:57)
 at org.apache.log4j.Category.callAppenders(Category.java:187)
 at org.apache.log4j.Category.forcedLog(Category.java:372)
 at org.apache.log4j.Category.error(Category.java:286)
 at com.bluearc.mgr.screens.Index.doThroughput(Index.java:253)


Expected Results:
An XML formatted message should have been logged to mgr_log.xml with an empty
CDATA section.  Similar to:
<log4j:message>![CDATA[]]</log4j:message>
or
<log4j:message></log4j:message>


Build & Platform:
build: Log4j version 1.2.5 (release ver)
platform: RedHat 7.2 & Windows 2000 with JDK 1.3.1_02


Additional Builds and Platforms:
 - Occurs On
        Log4j version 1.2.6


Additional Information:
 - xerces1_4_4.jar and xalan-j_2_4_D1.jar in classpath.

--
To unsubscribe, e-mail:   <mailto:log4j-dev-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:log4j-dev-help@jakarta.apache.org>

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic