Author: carnold
Date: Mon Jan 23 10:24:42 2006
New Revision: 371612

URL: http://svn.apache.org/viewcvs?rev=371612&view=rev
Log:
LOGCXX-111: Logger crashes without valid LoggerRepository

Modified:
    logging/log4cxx/trunk/src/logger.cpp

Modified: logging/log4cxx/trunk/src/logger.cpp
URL: 
http://svn.apache.org/viewcvs/logging/log4cxx/trunk/src/logger.cpp?rev=371612&r1=371611&r2=371612&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/logger.cpp (original)
+++ logging/log4cxx/trunk/src/logger.cpp Mon Jan 23 10:24:42 2006
@@ -1,5 +1,5 @@
 /*
- * Copyright 2003-2005 The Apache Software Foundation.
+ * Copyright 2003-2006 The Apache Software Foundation.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -59,7 +59,9 @@
                   aai = new AppenderAttachableImpl();
         }
         aai->addAppender(newAppender);
-        repository->fireAddAppenderEvent(this, newAppender);
+               if (repository != 0) {
+           repository->fireAddAppenderEvent(this, newAppender);
+               }
 }
 
 
@@ -83,7 +85,7 @@
                 }
         }
 
-        if(writes == 0)
+        if(writes == 0 && repository != 0)
         {
                 repository->emitNoAppenderWarning(this);
         }
@@ -261,7 +263,7 @@
 
 bool Logger::isDebugEnabled() const
 {
-        if(repository->isDisabled(Level::DEBUG_INT))
+        if(repository == 0 || repository->isDisabled(Level::DEBUG_INT))
         {
                 return false;
         }
@@ -271,7 +273,7 @@
 
 bool Logger::isEnabledFor(const LevelPtr& level) const
 {
-        if(repository->isDisabled(level->toInt()))
+        if(repository == 0 || repository->isDisabled(level->toInt()))
         {
                 return false;
         }
@@ -282,7 +284,7 @@
 
 bool Logger::isInfoEnabled() const
 {
-        if(repository->isDisabled(Level::INFO_INT))
+        if(repository == 0 || repository->isDisabled(Level::INFO_INT))
         {
                 return false;
         }
@@ -292,7 +294,7 @@
 
 bool Logger::isErrorEnabled() const
 {
-        if(repository->isDisabled(Level::ERROR_INT))
+        if(repository == 0 || repository->isDisabled(Level::ERROR_INT))
         {
                 return false;
         }
@@ -302,7 +304,7 @@
 
 bool Logger::isWarnEnabled() const
 {
-        if(repository->isDisabled(Level::WARN_INT))
+        if(repository == 0 || repository->isDisabled(Level::WARN_INT))
         {
                 return false;
         }
@@ -312,7 +314,7 @@
 
 bool Logger::isFatalEnabled() const
 {
-        if(repository->isDisabled(Level::FATAL_INT))
+        if(repository == 0 || repository->isDisabled(Level::FATAL_INT))
         {
                 return false;
         }
@@ -323,7 +325,7 @@
 /*void Logger::l7dlog(const LevelPtr& level, const String& key,
                         const char* file, int line)
 {
-        if (repository->isDisabled(level->level))
+        if (repository == 0 || repository->isDisabled(level->level))
         {
                 return;
         }
@@ -346,7 +348,7 @@
 void Logger::l7dlog(const LevelPtr& level, const std::string& key,
                         const LocationInfo& location, ...)
 {
-        if (repository->isDisabled(level->toInt()))
+        if (repository == 0 || repository->isDisabled(level->toInt()))
         {
                 return;
         }
@@ -378,7 +380,7 @@
 void Logger::l7dlog(const LevelPtr& level, const std::wstring& key,
                         const LocationInfo& location, ...)
 {
-        if (repository->isDisabled(level->toInt()))
+        if (repository == 0 || repository->isDisabled(level->toInt()))
         {
                 return;
         }


Reply via email to