Author: carnold
Date: Wed Jun 18 15:18:45 2008
New Revision: 669316

URL: http://svn.apache.org/viewvc?rev=669316&view=rev
Log:
LOGCXX-249: ConsoleAppender crashes if layout is not set

Modified:
    logging/log4cxx/trunk/src/changes/changes.xml
    logging/log4cxx/trunk/src/main/cpp/writerappender.cpp
    logging/log4cxx/trunk/src/test/cpp/consoleappendertestcase.cpp

Modified: logging/log4cxx/trunk/src/changes/changes.xml
URL: 
http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/changes/changes.xml?rev=669316&r1=669315&r2=669316&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/changes/changes.xml (original)
+++ logging/log4cxx/trunk/src/changes/changes.xml Wed Jun 18 15:18:45 2008
@@ -23,6 +23,7 @@
 </properties>
 <body>
 <release version="0.10.1" date="2008-XX-XX" description="Maintenance release">
+<action issue="LOGCXX-249">Console appender crashes if layout is not 
set</action>
 <action issue="LOGCXX-262">socketappendertestcase and 
xmlsocketappendertestcase not run</action>
 <action issue="LOGCXX-263">Bad link to log4cxx-dev archive</action>
 <action issue="LOGCXX-265">Eliminate anachronism warnings</action>

Modified: logging/log4cxx/trunk/src/main/cpp/writerappender.cpp
URL: 
http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/cpp/writerappender.cpp?rev=669316&r1=669315&r2=669316&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/cpp/writerappender.cpp (original)
+++ logging/log4cxx/trunk/src/main/cpp/writerappender.cpp Wed Jun 18 15:18:45 
2008
@@ -115,6 +115,10 @@
 
     return false;
   }
+  
+  if (layout == 0) {
+    return false;
+  }
 
   return true;
 }

Modified: logging/log4cxx/trunk/src/test/cpp/consoleappendertestcase.cpp
URL: 
http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/test/cpp/consoleappendertestcase.cpp?rev=669316&r1=669315&r2=669316&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/test/cpp/consoleappendertestcase.cpp (original)
+++ logging/log4cxx/trunk/src/test/cpp/consoleappendertestcase.cpp Wed Jun 18 
15:18:45 2008
@@ -23,7 +23,7 @@
 using namespace log4cxx::helpers;
 
 /**
-   Unit tests of log4cxx::nt::NTEventLogAppender
+   Unit tests of ConsoleAppender.
  */
 class ConsoleAppenderTestCase : public WriterAppenderTestCase
 {
@@ -33,7 +33,7 @@
                 //
                 LOGUNIT_TEST(testDefaultThreshold);
                 LOGUNIT_TEST(testSetOptionThreshold);
-
+                LOGUNIT_TEST(testNoLayout);
    LOGUNIT_TEST_SUITE_END();
 
 
@@ -42,6 +42,16 @@
         WriterAppender* createWriterAppender() const {
           return new log4cxx::ConsoleAppender();
         }
+        
+        void testNoLayout() {
+            Pool p;
+            ConsoleAppenderPtr appender(new ConsoleAppender());
+            appender->activateOptions(p);
+            LoggerPtr logger(Logger::getRootLogger());
+            logger->addAppender(appender);
+            LOG4CXX_INFO(logger, "No layout specified for ConsoleAppender");
+            logger->removeAppender(appender);
+        }
 };
 
 LOGUNIT_TEST_SUITE_REGISTRATION(ConsoleAppenderTestCase);


Reply via email to