You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4cxx-dev@logging.apache.org by ca...@apache.org on 2004/10/25 06:44:03 UTC

cvs commit: logging-log4cxx/tests/src/util controlfilter.cpp filter.h

carnold     2004/10/24 21:44:03

  Modified:    include/log4cxx dailyrollingfileappender.h
               include/log4cxx/helpers class.h event.h exception.h object.h
                        objectptr.h resourcebundle.h socketimpl.h thread.h
               performance main.cpp
               src      boundedfifo.cpp class.cpp cyclicbuffer.cpp
                        dailyrollingfileappender.cpp datagramsocket.cpp
                        dateformat.cpp event.cpp logger.cpp logmanager.cpp
                        objectimpl.cpp optionconverter.cpp properties.cpp
                        propertyresourcebundle.cpp socketappender.cpp
                        socketimpl.cpp socketinputstream.cpp system.cpp
                        thread.cpp
               tests/src/util controlfilter.cpp filter.h
  Log:
  LOGCXX-33(?): Rework exception to derive from std::exception
  
  Revision  Changes    Path
  1.12      +8 -0      logging-log4cxx/include/log4cxx/dailyrollingfileappender.h
  
  Index: dailyrollingfileappender.h
  ===================================================================
  RCS file: /home/cvs/logging-log4cxx/include/log4cxx/dailyrollingfileappender.h,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- dailyrollingfileappender.h	22 Oct 2004 17:35:28 -0000	1.11
  +++ dailyrollingfileappender.h	25 Oct 2004 04:44:02 -0000	1.12
  @@ -82,6 +82,14 @@
   		inline void setTimeZone(const helpers::TimeZonePtr& timeZone)
   			{ this->timeZone = timeZone; }
   
  +                class UnknownPeriodicityTypeException : public ::log4cxx::helpers::RuntimeException {
  +                    public:
  +                    UnknownPeriodicityTypeException() throw() {}
  +                    const char* what() const throw() {
  +                      return "Unknown periodicity type";
  +                    }
  +                };
  +
   	protected:
   		PeriodicityType type;
   		helpers::TimeZonePtr timeZone;
  
  
  
  1.12      +4 -2      logging-log4cxx/include/log4cxx/helpers/class.h
  
  Index: class.h
  ===================================================================
  RCS file: /home/cvs/logging-log4cxx/include/log4cxx/helpers/class.h,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- class.h	21 Oct 2004 04:53:44 -0000	1.11
  +++ class.h	25 Oct 2004 04:44:03 -0000	1.12
  @@ -36,7 +36,8 @@
   		class LOG4CXX_EXPORT InstantiationException : public Exception
   		{
   		public:
  -			InstantiationException() : Exception(_T("Abstract class")) {}
  +			InstantiationException() {}
  +                        const char* what() const throw() { return "Abstract class"; }
   		};
   
   		/**
  @@ -47,7 +48,8 @@
   		class LOG4CXX_EXPORT ClassNotFoundException : public Exception
   		{
   		public:
  -			ClassNotFoundException(const String& className);
  +                    ClassNotFoundException(const String& className) {}
  +                    const char* what() const throw() { return "Class not found"; }
   		};
   
   		class LOG4CXX_EXPORT Class
  
  
  
  1.6       +21 -20    logging-log4cxx/include/log4cxx/helpers/event.h
  
  Index: event.h
  ===================================================================
  RCS file: /home/cvs/logging-log4cxx/include/log4cxx/helpers/event.h,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- event.h	13 Aug 2004 12:27:46 -0000	1.5
  +++ event.h	25 Oct 2004 04:44:03 -0000	1.6
  @@ -1,29 +1,29 @@
   /*
    * Copyright 2003,2004 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.
    * You may obtain a copy of the License at
  - * 
  + *
    *      http://www.apache.org/licenses/LICENSE-2.0
  - * 
  + *
    * Unless required by applicable law or agreed to in writing, software
    * distributed under the License is distributed on an "AS IS" BASIS,
    * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    * See the License for the specific language governing permissions and
    * limitations under the License.
    */
  - 
  +
   #ifndef _LOG4CXX_HELPERS_EVENT_H
   #define _LOG4CXX_HELPERS_EVENT_H
  - 
  +
   #include <log4cxx/portability.h>
   #include <log4cxx/helpers/exception.h>
   
   #ifdef LOG4CXX_HAVE_PTHREAD
   #include <pthread.h>
   #endif
  - 
  +
   namespace log4cxx
   {
   	namespace helpers
  @@ -31,14 +31,15 @@
   		class LOG4CXX_EXPORT EventException : public Exception
   		{
   		public:
  -			EventException(const String& message) : Exception(message)
  +			EventException() : Exception()
   			{
   			}
   		};
  -		
  +
  +
   		/**
   		Object to be used to synchronize threads
  -		
  +
   		An event is signalled with set().  If the new event is
   		a manual reset event, it remains signalled until it is reset
   		with reset().  An auto reset event remains signalled until a
  @@ -48,21 +49,21 @@
   		class LOG4CXX_EXPORT Event
   		{
   		public:
  -			/** 
  +			/**
   			Creates a new event
  -			
  +
   			@param manualReset Specifies whether the new event has manual or auto
   			reset behaviour.
   			@param initialState Specifies whether the new event handle is initially
    			signalled or not
   			*/
   			Event(bool manualReset, bool initialState);
  -			
  +
   			/**
   			Destroy the event
   			*/
   			~Event();
  -			
  +
   			/**
   			Sets the event to the signalled state.
   
  @@ -72,19 +73,19 @@
   			automatically reset to unsignalled.
   			*/
   			void set();
  -			
  -			/** 
  +
  +			/**
   			Resets the event to the unsignalled state
   			*/
   			void reset();
  -			
  -			/** 
  +
  +			/**
   			Wait for the event to be set
  -			
  +
   			This method immediatly returns if the event is already set
   			*/
   			void wait();
  -			
  +
   		protected:
   #ifdef LOG4CXX_HAVE_PTHREAD
   			pthread_cond_t condition;
  @@ -93,7 +94,7 @@
   			bool manualReset;
   #elif defined(LOG4CXX_HAVE_MS_THREAD)
   			void * event;
  -#endif 
  +#endif
   		}; // class Event
   	}  // namespace helpers
   }; // namespace log4cx
  
  
  
  1.13      +12 -23    logging-log4cxx/include/log4cxx/helpers/exception.h
  
  Index: exception.h
  ===================================================================
  RCS file: /home/cvs/logging-log4cxx/include/log4cxx/helpers/exception.h,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- exception.h	22 Oct 2004 17:35:29 -0000	1.12
  +++ exception.h	25 Oct 2004 04:44:03 -0000	1.13
  @@ -26,22 +26,14 @@
   		/** The class Exception and its subclasses indicate conditions that a
   		reasonable application might want to catch.
   		*/
  -		class LOG4CXX_EXPORT Exception
  +		class LOG4CXX_EXPORT Exception : public ::std::exception
   		{
   		public:
  -			Exception() : message() {}
  -			Exception(const String& message): message(message) {}
  -                        Exception(const Exception& other)
  -                            : message(other.getMessage()) {}
  -                        virtual ~Exception() {}
  -			inline const String& getMessage() const { return message; }
  -
  -		private:
  -			const String message;
  -                        //   prevent assignment operations
  -                        Exception& operator=(const Exception&);
  -
  -	}; // class Exception
  +			Exception()  {}
  +                        virtual const String getMessage() const {
  +                          return what();
  +                        }
  +	        }; // class Exception
   
   		/** RuntimeException is the parent class of those exceptions that can be
   		thrown during the normal operation of the process.
  @@ -50,8 +42,6 @@
   		{
   		public:
   			RuntimeException() {}
  -			RuntimeException(const String& message)
  -			 : Exception(message) {}
   		}; // class RuntimeException
   
   		/** Thrown when an application attempts to use null in a case where an
  @@ -61,17 +51,14 @@
   		{
   		public:
   			NullPointerException() {}
  -			NullPointerException(const String& message)
  -			 : RuntimeException(message) {}
   		}; // class NullPointerException
   
   		/** Thrown to indicate that a method has been passed
   		an illegal or inappropriate argument.*/
   		class LOG4CXX_EXPORT IllegalArgumentException : public RuntimeException
   		{
  -		public:
  -			IllegalArgumentException(const String& message)
  -			 : RuntimeException(message) {}
  +                public:
  +                   IllegalArgumentException() {}
   		}; // class IllegalArgumentException
   
   		/** Signals that an I/O exception of some sort has occurred. This class
  @@ -80,8 +67,10 @@
   		*/
   		class LOG4CXX_EXPORT IOException : public Exception
   		{
  -                    public:
  -                    IOException(const String& message) : Exception(message) {}
  +                public:
  +                    IOException()  {}
  +                    IOException(const IOException &src) : Exception(src) {
  +                    }
   		};
   	}  // namespace helpers
   }; // namespace log4cxx
  
  
  
  1.13      +25 -2     logging-log4cxx/include/log4cxx/helpers/object.h
  
  Index: object.h
  ===================================================================
  RCS file: /home/cvs/logging-log4cxx/include/log4cxx/helpers/object.h,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- object.h	22 Oct 2004 17:35:29 -0000	1.12
  +++ object.h	25 Oct 2004 04:44:03 -0000	1.13
  @@ -70,10 +70,33 @@
   		class LOG4CXX_EXPORT IllegalMonitorStateException : public Exception
   		{
   		public:
  -			IllegalMonitorStateException(const String& message) : Exception(message)
  -			{
  +			IllegalMonitorStateException() {
   			}
  +
   		};
  +
  +               class LOG4CXX_EXPORT ObjectNotLockedException : public IllegalMonitorStateException
  +               {
  +               public:
  +                    ObjectNotLockedException() {
  +                    }
  +
  +                    const char* what() throw() {
  +                        return "Object not locked";
  +                    }
  +               };
  +
  +                class LOG4CXX_EXPORT ObjectNotLockedByCurrentThreadException : public IllegalMonitorStateException
  +                {
  +                public:
  +                     ObjectNotLockedByCurrentThreadException() {
  +                     }
  +
  +                     const char* what() throw() {
  +                         return "Object not locked by this thread";
  +                     }
  +                };
  +
   
   		class Object;
   		typedef ObjectPtrT<Object> ObjectPtr;
  
  
  
  1.9       +8 -8      logging-log4cxx/include/log4cxx/helpers/objectptr.h
  
  Index: objectptr.h
  ===================================================================
  RCS file: /home/cvs/logging-log4cxx/include/log4cxx/helpers/objectptr.h,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- objectptr.h	24 Apr 2004 08:15:44 -0000	1.8
  +++ objectptr.h	25 Oct 2004 04:44:03 -0000	1.9
  @@ -1,19 +1,19 @@
   /*
    * Copyright 2003,2004 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.
    * You may obtain a copy of the License at
  - * 
  + *
    *      http://www.apache.org/licenses/LICENSE-2.0
  - * 
  + *
    * Unless required by applicable law or agreed to in writing, software
    * distributed under the License is distributed on an "AS IS" BASIS,
    * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    * See the License for the specific language governing permissions and
    * limitations under the License.
    */
  - 
  +
   #ifndef _LOG4CXX_HELPERS_OBJECT_PTR_H
   #define _LOG4CXX_HELPERS_OBJECT_PTR_H
   
  @@ -54,7 +54,7 @@
   				if (null != 0)
   				{
   
  -					throw IllegalArgumentException(String());
  +					throw IllegalArgumentException();
   				}
   			}
   
  @@ -117,7 +117,7 @@
   			{
   				if (null != 0)
   				{
  -					throw IllegalArgumentException(String());
  +					throw IllegalArgumentException();
   				}
   
   				if (this->p != 0)
  @@ -180,7 +180,7 @@
           public:
               T * p;
           };
  -    } 
  -} 
  +    }
  +}
   
   #endif //_LOG4CXX_HELPERS_OBJECT_PTR_H
  
  
  
  1.6       +5 -2      logging-log4cxx/include/log4cxx/helpers/resourcebundle.h
  
  Index: resourcebundle.h
  ===================================================================
  RCS file: /home/cvs/logging-log4cxx/include/log4cxx/helpers/resourcebundle.h,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- resourcebundle.h	22 Oct 2004 17:35:29 -0000	1.5
  +++ resourcebundle.h	25 Oct 2004 04:44:03 -0000	1.6
  @@ -29,8 +29,11 @@
   		class LOG4CXX_EXPORT MissingResourceException : public Exception
   		{
                       public:
  -                    MissingResourceException(const String& message) :
  -                       Exception(message) {}
  +                    MissingResourceException(const String& key) {
  +                    }
  +                    const char* what() const throw() {
  +                       return "Missing resource";
  +                    }
   		};
   
   		class ResourceBundle;
  
  
  
  1.13      +81 -10    logging-log4cxx/include/log4cxx/helpers/socketimpl.h
  
  Index: socketimpl.h
  ===================================================================
  RCS file: /home/cvs/logging-log4cxx/include/log4cxx/helpers/socketimpl.h,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- socketimpl.h	22 Oct 2004 15:13:36 -0000	1.12
  +++ socketimpl.h	25 Oct 2004 04:44:03 -0000	1.13
  @@ -33,25 +33,84 @@
   		{
   		public:
   			SocketException();
  -
  +                        SocketException(const SocketException&);
  +                        virtual ~SocketException() throw();
  +                        const char* what() const throw();
                   private:
  -                        static const String createMessage();
  +                        SocketException& operator=(const SocketException&);
   		};
   
  +                /**
  +                 * Thrown if an incoming message is too large
  +                 */
  +                class SocketMessageTooLargeException : public SocketException
  +                {
  +                public:
  +                      SocketMessageTooLargeException() {}
  +                      SocketMessageTooLargeException(
  +                         const SocketMessageTooLargeException& src) :
  +                         SocketException(src) {
  +                      }
  +                      virtual ~SocketMessageTooLargeException() throw() {}
  +                      const char* what() const throw() {
  +                         "Incoming message too large";
  +                      }
  +
  +                private:
  +                     SocketMessageTooLargeException& operator=(
  +                         const SocketMessageTooLargeException&);
  +                };
  +
  +
  +                /** Thrown to indicate that there is an error in the underlying
  +                protocol, such as a TCP error.
  +                */
  +                class LOG4CXX_EXPORT PlatformSocketException : public SocketException
  +                {
  +                public:
  +                        PlatformSocketException();
  +                        PlatformSocketException(const PlatformSocketException&);
  +                        virtual ~PlatformSocketException() throw();
  +                        const char* what() const throw();
  +                        virtual const String getMessage() const;
  +                        long getErrorNumber() const;
  +
  +                private:
  +                        PlatformSocketException& operator=(const PlatformSocketException&);
  +                        long errorNumber;
  +                };
  +
  +
   		/** Signals that an error occurred while attempting to connect a socket
   		to a remote address and port. Typically, the connection was refused
   		remotely (e.g., no process is listening on the remote address/port).
   		*/
  -		class LOG4CXX_EXPORT ConnectException : public SocketException
  +		class LOG4CXX_EXPORT ConnectException : public PlatformSocketException
   		{
  +                public:
  +                    ConnectException();
  +                    ConnectException(const ConnectException& src);
  +                    virtual ~ConnectException() throw();
  +                    const char* what() const throw();
  +
  +                private:
  +                   ConnectException& operator=(const ConnectException&);
   		};
   
   		/** Signals that an error occurred while attempting to bind a socket to
   		a local address and port. Typically, the port is in use, or the
   		requested local address could not be assigned.
   		*/
  -		class LOG4CXX_EXPORT BindException : public SocketException
  +		class LOG4CXX_EXPORT BindException : public PlatformSocketException
   		{
  +                public:
  +                      BindException();
  +                      BindException(const BindException&);
  +                      virtual ~BindException() throw();
  +                      const char* what() const throw();
  +
  +                private:
  +                     BindException& operator=(const BindException&);
   		};
   
   		/** Signals that an I/O operation has been interrupted. An
  @@ -62,19 +121,31 @@
   		*/
   		class LOG4CXX_EXPORT InterruptedIOException : public IOException
   		{
  -                     public:
  -                     InterruptedIOException(const String& message) :
  -                         IOException(message) {}
  +                public:
  +                     InterruptedIOException();
  +                     InterruptedIOException(const InterruptedIOException&);
  +                     ~InterruptedIOException() throw();
  +                     const char* what() const throw();
  +
  +                private:
  +                     InterruptedIOException& operator=(const InterruptedIOException&);
   		};
   
   		/** Signals that a timeout has occurred on a socket read or accept.
   		*/
   		class LOG4CXX_EXPORT SocketTimeoutException : public InterruptedIOException
   		{
  -                    public:
  -                    SocketTimeoutException(const String& message) :
  -                      InterruptedIOException(message) {}
  +                public:
  +                    SocketTimeoutException();
  +                    SocketTimeoutException(const SocketTimeoutException& src);
  +                    ~SocketTimeoutException() throw();
  +                    const char* what() const throw();
  +
  +               private:
  +                    SocketTimeoutException& operator=(const SocketTimeoutException&);
   		};
  +
  +
   
   		class SocketImpl;
   		typedef helpers::ObjectPtrT<SocketImpl> SocketImplPtr;
  
  
  
  1.17      +2 -2      logging-log4cxx/include/log4cxx/helpers/thread.h
  
  Index: thread.h
  ===================================================================
  RCS file: /home/cvs/logging-log4cxx/include/log4cxx/helpers/thread.h,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- thread.h	22 Oct 2004 17:35:29 -0000	1.16
  +++ thread.h	25 Oct 2004 04:44:03 -0000	1.17
  @@ -43,14 +43,14 @@
   		class LOG4CXX_EXPORT ThreadException : public Exception
   		{
                       public:
  -                    ThreadException(const String& msg) : Exception(msg) {
  +                    ThreadException() : Exception() {
                       }
   		};
   
   		class LOG4CXX_EXPORT InterruptedException : public Exception
   		{
                       public:
  -                    InterruptedException(const String& msg) : Exception(msg) {
  +                    InterruptedException() : Exception() {
                       }
   		};
   
  
  
  
  1.7       +21 -13    logging-log4cxx/performance/main.cpp
  
  Index: main.cpp
  ===================================================================
  RCS file: /home/cvs/logging-log4cxx/performance/main.cpp,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- main.cpp	14 Aug 2004 11:27:27 -0000	1.6
  +++ main.cpp	25 Oct 2004 04:44:03 -0000	1.7
  @@ -1,19 +1,19 @@
   /*
    * Copyright 2003,2004 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.
    * You may obtain a copy of the License at
  - * 
  + *
    *      http://www.apache.org/licenses/LICENSE-2.0
  - * 
  + *
    * Unless required by applicable law or agreed to in writing, software
    * distributed under the License is distributed on an "AS IS" BASIS,
    * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    * See the License for the specific language governing permissions and
    * limitations under the License.
    */
  - 
  +
   #include <log4cxx/helpers/tchar.h>
   #include <log4cxx/ndc.h>
   #include <log4cxx/logmanager.h>
  @@ -41,7 +41,7 @@
   {
   	tcerr << msg << std::endl;
   	tcerr <<
  -		_T("Usage: ") << processName 
  +		_T("Usage: ") << processName
   		<< _T(" confFile runLength [delay] [burstLen]") << std::endl
   		<< _T("       confFile is an XML configuration file and") << std::endl
   		<< _T("       runLength (integer) is the length of test loop.") << std::endl
  @@ -49,13 +49,21 @@
   	exit(EXIT_FAILURE);
   }
   
  +class IllegalRunLengthException : public IllegalArgumentException {
  +   public:
  +   IllegalRunLengthException() throw() {}
  +   const char* what() const throw() {
  +     return "run Length must be greater than 0";
  +   }
  +};
  +
   void init(const String& configFile, const String& runLengthStr,
   		  const String& delayStr, const String& burstLenStr)
   {
   	runLength = OptionConverter::toInt(runLengthStr, runLength);
   	if (runLength < 1)
   	{
  -		throw IllegalArgumentException(_T("run Length must be greater than 0"));
  +		throw IllegalRunLengthException();
   	}
   	if (!delayStr.empty())
   	{
  @@ -67,7 +75,7 @@
   		DELAY_MULT = 1000/burstLen;
   	}
   
  -#ifdef LOG4CXX_HAVE_XML	
  +#ifdef LOG4CXX_HAVE_XML
   	xml::DOMConfigurator::configure(configFile);
   #endif
   }
  @@ -102,7 +110,7 @@
   			{
   			}
   		}
  -		
  +
       }
       double actualTime = ((System::currentTimeMillis()-before)*1000.0/runLength);
       tcout << "actual time: " << actualTime << std::endl;
  @@ -112,7 +120,7 @@
   int main(int argc, char* argv[])
   {
   	int ret = EXIT_SUCCESS;
  -	
  +
   	try
   	{
   		USES_CONVERSION;
  @@ -123,8 +131,8 @@
   			init(A2T(argv[1]), A2T(argv[2]), A2T(argv[3]), A2T(argv[4]));
   		else
   			Usage(A2T(argv[0]), _T("Wrong number of arguments."));
  -		
  -		
  +
  +
   		NDC::push(_T("some context"));
   
   		double delta;
  @@ -137,9 +145,9 @@
   		{
   			delta = DelayedLoop(logger, msg);
   		}
  -		
  +
   		tcout << (int)delta << std::endl;
  -		
  +
   		LogManager::shutdown();
   	}
   	catch(Exception&)
  
  
  
  1.11      +8 -11     logging-log4cxx/src/boundedfifo.cpp
  
  Index: boundedfifo.cpp
  ===================================================================
  RCS file: /home/cvs/logging-log4cxx/src/boundedfifo.cpp,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- boundedfifo.cpp	22 Apr 2004 21:21:33 -0000	1.10
  +++ boundedfifo.cpp	25 Oct 2004 04:44:03 -0000	1.11
  @@ -1,12 +1,12 @@
   /*
    * Copyright 2003,2004 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.
    * You may obtain a copy of the License at
  - * 
  + *
    *      http://www.apache.org/licenses/LICENSE-2.0
  - * 
  + *
    * Unless required by applicable law or agreed to in writing, software
    * distributed under the License is distributed on an "AS IS" BASIS,
    * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  @@ -30,10 +30,7 @@
   {
   	if(maxSize < 1)
   	{
  -		StringBuffer oss;
  -		oss << _T("The maxSize argument (") << maxSize
  -			<< _T(") is not a positive integer.");
  -		throw new IllegalArgumentException(oss.str());
  +		throw new IllegalArgumentException();
   	}
   }
   
  @@ -51,7 +48,7 @@
   	{
   		first = 0;
   	}
  -	
  +
   	numElements--;
   	return r;
   }
  @@ -72,14 +69,14 @@
   void BoundedFIFO::resize(int newSize)
   {
   	synchronized sync(this);
  -	
  +
   	if(newSize == maxSize)
   	{
   		return;
   	}
  -	
  +
   	std::vector<LoggingEventPtr> tmp(newSize);
  -	
  +
   	// we should not copy beyond the buf array
   	int len1 = maxSize - first;
   
  
  
  
  1.13      +0 -4      logging-log4cxx/src/class.cpp
  
  Index: class.cpp
  ===================================================================
  RCS file: /home/cvs/logging-log4cxx/src/class.cpp,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- class.cpp	22 Oct 2004 17:35:30 -0000	1.12
  +++ class.cpp	25 Oct 2004 04:44:03 -0000	1.13
  @@ -23,10 +23,6 @@
   using namespace log4cxx::helpers;
   
   
  -ClassNotFoundException::ClassNotFoundException(const String& className) :
  -    Exception(_T("Class '") + className + _T("' not found"))
  -{
  -}
   
   Class::Class(const String& name) : name(name)
   {
  
  
  
  1.7       +6 -12     logging-log4cxx/src/cyclicbuffer.cpp
  
  Index: cyclicbuffer.cpp
  ===================================================================
  RCS file: /home/cvs/logging-log4cxx/src/cyclicbuffer.cpp,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- cyclicbuffer.cpp	22 Apr 2004 21:21:33 -0000	1.6
  +++ cyclicbuffer.cpp	25 Oct 2004 04:44:03 -0000	1.7
  @@ -1,12 +1,12 @@
   /*
    * Copyright 2003,2004 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.
    * You may obtain a copy of the License at
  - * 
  + *
    *      http://www.apache.org/licenses/LICENSE-2.0
  - * 
  + *
    * Unless required by applicable law or agreed to in writing, software
    * distributed under the License is distributed on an "AS IS" BASIS,
    * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  @@ -33,10 +33,7 @@
   {
   	if(maxSize < 1)
   	{
  -		StringBuffer oss;
  -		oss << _T("The maxSize argument (") << maxSize
  -			<< _T(") is not a positive integer.");
  -		throw new IllegalArgumentException(oss.str());
  +		throw new IllegalArgumentException();
   	}
    }
   
  @@ -98,7 +95,7 @@
   	}
   	return r;
   }
  -  
  +
   /**
   Resize the cyclic buffer to <code>newSize</code>.
   @throws IllegalArgumentException if <code>newSize</code> is negative.
  @@ -107,10 +104,7 @@
   {
   	if(newSize < 0)
   	{
  -		StringBuffer oss;
  -		oss << _T("Negative array size [") << newSize
  -			<< _T("] not allowed.");
  -		throw new IllegalArgumentException(oss.str());
  +		throw new IllegalArgumentException();
   	}
   	if(newSize == numElems)
   		return; // nothing to do
  
  
  
  1.8       +1 -1      logging-log4cxx/src/dailyrollingfileappender.cpp
  
  Index: dailyrollingfileappender.cpp
  ===================================================================
  RCS file: /home/cvs/logging-log4cxx/src/dailyrollingfileappender.cpp,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- dailyrollingfileappender.cpp	22 Oct 2004 17:35:30 -0000	1.7
  +++ dailyrollingfileappender.cpp	25 Oct 2004 04:44:03 -0000	1.8
  @@ -132,7 +132,7 @@
   			return now;
   		}
   	default:
  -		throw RuntimeException(_T("Unknown periodicity type."));
  +		throw UnknownPeriodicityTypeException();
   	}
   
   	return now;
  
  
  
  1.12      +2 -2      logging-log4cxx/src/datagramsocket.cpp
  
  Index: datagramsocket.cpp
  ===================================================================
  RCS file: /home/cvs/logging-log4cxx/src/datagramsocket.cpp,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- datagramsocket.cpp	22 Oct 2004 17:35:30 -0000	1.11
  +++ datagramsocket.cpp	25 Oct 2004 04:44:03 -0000	1.12
  @@ -160,7 +160,7 @@
   		(sockaddr *)&addr, (socklen_t *)&addr_len) == -1)
   #endif
   	{
  -		throw IOException("IOException in DatagramSocket::receive");
  +		throw IOException();
   	}
   
   }
  @@ -183,7 +183,7 @@
   		(sockaddr *)&addr, addr_len) == -1)
   #endif
   	{
  -		throw IOException("IOException in DatagramSocket::send");
  +		throw IOException();
   	}
   }
   
  
  
  
  1.16      +1 -1      logging-log4cxx/src/dateformat.cpp
  
  Index: dateformat.cpp
  ===================================================================
  RCS file: /home/cvs/logging-log4cxx/src/dateformat.cpp,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- dateformat.cpp	21 Oct 2004 04:53:44 -0000	1.15
  +++ dateformat.cpp	25 Oct 2004 04:44:03 -0000	1.16
  @@ -75,7 +75,7 @@
   
   	if (timeZone == 0)
   	{
  -		throw NullPointerException(_T("timeZone is null"));
  +		throw NullPointerException();
   	}
   
   	int64_t localTimeMillis = timeMillis + timeZone->getOffset(timeMillis);
  
  
  
  1.5       +104 -13   logging-log4cxx/src/event.cpp
  
  Index: event.cpp
  ===================================================================
  RCS file: /home/cvs/logging-log4cxx/src/event.cpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- event.cpp	22 Oct 2004 17:35:30 -0000	1.4
  +++ event.cpp	25 Oct 2004 04:44:03 -0000	1.5
  @@ -22,6 +22,97 @@
   
   using namespace log4cxx::helpers;
   
  +//
  +//   Specializations of EventException, not in header since they
  +//      are subject to change and not part of public API
  +//
  +namespace log4cxx {
  +  namespace helpers {
  +
  +    class CannotLockMutexException : public EventException
  +    {
  +    public:
  +          CannotLockMutexException()  {
  +          }
  +          const char* what() const throw() {
  +            return "Cannot lock mutex";
  +          }
  +    };
  +
  +    class CannotBroadcastConditionException : public EventException
  +    {
  +    public:
  +         CannotBroadcastConditionException()  {
  +         }
  +         const char* what() const throw() {
  +             return "Cannot broadcast condition";
  +         }
  +    };
  +
  +    class CannotSignalConditionException : public EventException
  +    {
  +        public:
  +        CannotSignalConditionException()  {
  +        }
  +        const char* what() const throw() {
  +            return "Cannot signal condition";
  +        }
  +    };
  +
  +    class CannotUnlockMutexException : public EventException
  +    {
  +        public:
  +        CannotUnlockMutexException()  {
  +        }
  +        const char* what() const throw() {
  +            return "Cannot unlock mutex";
  +        }
  +    };
  +
  +    class CannotSetEventException : public EventException
  +    {
  +        public:
  +        CannotSetEventException()  {
  +        }
  +        const char* what() const throw() {
  +            return "Cannot set event";
  +        }
  +    };
  +
  +    class CannotCreateEventException : public EventException
  +    {
  +        public:
  +        CannotCreateEventException()  {
  +        }
  +        const char* what() const throw() {
  +            return "Cannot create event";
  +        }
  +    };
  +
  +    class CannotWaitOnConditionException : public EventException
  +    {
  +        public:
  +        CannotWaitOnConditionException()  {
  +        }
  +        const char* what() const throw() {
  +            return "Cannot wait on condition";
  +        }
  +    };
  +
  +    class WaitOnEventException : public EventException
  +    {
  +        public:
  +        WaitOnEventException()  {
  +        }
  +        const char* what() const throw() {
  +            return "Wait on event error";
  +        }
  +    };
  +
  +  }
  +}
  +
  +
   Event::Event(bool manualReset, bool initialState)
   : condition(), mutex()
   #ifdef LOG4CXX_HAVE_PTHREAD
  @@ -40,7 +131,7 @@
   
   	if (event == NULL)
   	{
  -		throw EventException(_T("Cannot create event"));
  +		throw CannotCreateEventException();
   	}
   #endif
   }
  @@ -60,7 +151,7 @@
   #ifdef LOG4CXX_HAVE_PTHREAD
   	if (pthread_mutex_lock(&mutex) != 0)
   	{
  -		throw EventException(_T("Cannot lock mutex"));
  +		throw CannotLockMutexException();
   	}
   
   	// if the event is already set, no need to signal or broadcast
  @@ -73,7 +164,7 @@
   			if (pthread_cond_broadcast(&condition) != 0)
   			{
   				pthread_mutex_unlock(&mutex);
  -				throw EventException(_T("Cannot broadcast condition"));
  +				throw CannotBroadcastConditionException();
   			}
   		}
   		else
  @@ -81,19 +172,19 @@
   			if (pthread_cond_signal(&condition) != 0)
   			{
   				pthread_mutex_unlock(&mutex);
  -				throw EventException(_T("Cannot signal condition"));
  +				throw CannotSignalConditionException();
   			}
   		}
   	}
   
   	if (pthread_mutex_unlock(&mutex) != 0)
   	{
  -		throw EventException(_T("Cannot unlock mutex"));
  +		throw CannotUnlockMutexException();
   	}
   #elif defined(LOG4CXX_HAVE_MS_THREAD)
   	if (!::SetEvent((HANDLE)event))
   	{
  -		throw EventException(_T("Cannot set event"));
  +		throw CannotSetEventException();
   	}
   #endif
   }
  @@ -103,19 +194,19 @@
   #ifdef LOG4CXX_HAVE_PTHREAD
   	if (pthread_mutex_lock(&mutex) != 0)
   	{
  -		throw EventException(_T("Cannot lock mutex"));
  +		throw CannotLockMutexException();
   	}
   
   	state = false;
   
   	if (pthread_mutex_unlock(&mutex) != 0)
   	{
  -		throw EventException(_T("Cannot unlock mutex"));
  +		throw CannotUnlockMutexException();
   	}
   #elif defined(LOG4CXX_HAVE_MS_THREAD)
   	if (!::ResetEvent((HANDLE)event))
   	{
  -		throw EventException(_T("Cannot reset event"));
  +		throw CannotResetEventException();
   	}
   #endif
   }
  @@ -125,14 +216,14 @@
   #ifdef LOG4CXX_HAVE_PTHREAD
   	if (pthread_mutex_lock(&mutex) != 0)
   	{
  -		throw EventException(_T("Cannot lock mutex"));
  +		throw CannotUnlockMutexException();
   	}
   
   	// we wait on condition only if the event is not set (state == false)
   	if (!state && pthread_cond_wait(&condition, &mutex) != 0)
   	{
   		pthread_mutex_unlock(&mutex);
  -		throw EventException(_T("Cannot wait on condition"));
  +		throw CannotWaitOnConditionException();
   	}
   
   	if (!manualReset)
  @@ -143,13 +234,13 @@
   
   	if (pthread_mutex_unlock(&mutex) != 0)
   	{
  -		throw EventException(_T("Cannot unlock mutex"));
  +		throw CannotUnlockMutexException();
   	}
   #elif defined(LOG4CXX_HAVE_MS_THREAD)
   	if (::WaitForSingleObject((HANDLE)event, INFINITE)
   		!= WAIT_OBJECT_0)
   	{
  -		throw EventException(_T("Wait on event error"));
  +		throw WaitOnEventException();
   	}
   #endif
   }
  
  
  
  1.16      +1 -1      logging-log4cxx/src/logger.cpp
  
  Index: logger.cpp
  ===================================================================
  RCS file: /home/cvs/logging-log4cxx/src/logger.cpp,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- logger.cpp	21 Oct 2004 04:53:44 -0000	1.15
  +++ logger.cpp	25 Oct 2004 04:44:03 -0000	1.16
  @@ -198,7 +198,7 @@
   		}
   	}
   
  -	throw RuntimeException(_T("level is null for logger") + name);
  +	throw RuntimeException();
   	return this->level;
   }
   
  
  
  
  1.11      +2 -5      logging-log4cxx/src/logmanager.cpp
  
  Index: logmanager.cpp
  ===================================================================
  RCS file: /home/cvs/logging-log4cxx/src/logmanager.cpp,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- logmanager.cpp	22 Oct 2004 04:46:34 -0000	1.10
  +++ logmanager.cpp	25 Oct 2004 04:44:03 -0000	1.11
  @@ -41,20 +41,17 @@
      return selector;
   }
   
  -
   void LogManager::setRepositorySelector(spi::RepositorySelectorPtr selector,
   	void * guard)
   {
   	if((LogManager::guard != 0) && (LogManager::guard != guard))
   	{
  -		throw IllegalArgumentException(
  -		_T("Attempted to reset the LoggerFactory without possessing the guard."));
  +		throw IllegalArgumentException();
   	}
   
   	if(selector == 0)
   	{
  -		throw IllegalArgumentException(
  -		_T("RepositorySelector must be non-null."));
  +		throw IllegalArgumentException();
   	}
   
   	LogManager::guard = guard;
  
  
  
  1.17      +7 -6      logging-log4cxx/src/objectimpl.cpp
  
  Index: objectimpl.cpp
  ===================================================================
  RCS file: /home/cvs/logging-log4cxx/src/objectimpl.cpp,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- objectimpl.cpp	22 Oct 2004 17:35:30 -0000	1.16
  +++ objectimpl.cpp	25 Oct 2004 04:44:03 -0000	1.17
  @@ -113,17 +113,18 @@
   	cs.unlock();
   }
   
  +
   void ObjectImpl::wait() const
   {
   	if (cs.getOwningThread() != Thread::getCurrentThreadId())
   	{
   		if (cs.getOwningThread() == 0)
   		{
  -			throw IllegalMonitorStateException(_T("Object not locked"));
  +			throw ObjectNotLockedException();
   		}
   		else
   		{
  -			throw IllegalMonitorStateException(_T("Object not locked by this thread"));
  +			throw ObjectNotLockedByCurrentThreadException();
   		}
   	}
   
  @@ -151,11 +152,11 @@
   	{
   		if (cs.getOwningThread() == 0)
   		{
  -			throw IllegalMonitorStateException(_T("Object not locked"));
  +			throw ObjectNotLockedException();
   		}
   		else
   		{
  -			throw IllegalMonitorStateException(_T("Object not locked by this thread"));
  +			throw ObjectNotLockedByCurrentThreadException();
   		}
   	}
   
  @@ -172,11 +173,11 @@
   	{
   		if (cs.getOwningThread() == 0)
   		{
  -			throw IllegalMonitorStateException(_T("Object not locked"));
  +			throw ObjectNotLockedException();
   		}
   		else
   		{
  -			throw IllegalMonitorStateException(_T("Object not locked by this thread"));
  +			throw ObjectNotLockedByCurrentThreadException();
   		}
   	}
   
  
  
  
  1.18      +36 -5     logging-log4cxx/src/optionconverter.cpp
  
  Index: optionconverter.cpp
  ===================================================================
  RCS file: /home/cvs/logging-log4cxx/src/optionconverter.cpp,v
  retrieving revision 1.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- optionconverter.cpp	21 Oct 2004 04:53:44 -0000	1.17
  +++ optionconverter.cpp	25 Oct 2004 04:44:03 -0000	1.18
  @@ -50,6 +50,41 @@
       };
   }
   
  +namespace log4cxx {
  +  namespace helpers {
  +    class MissingBraceException : public IllegalArgumentException {
  +    public:
  +       MissingBraceException(const String& val, size_t openBrace)
  +          : val(val), openBrace(openBrace) {
  +       }
  +
  +       MissingBraceException(const MissingBraceException& src)
  +          : IllegalArgumentException(src), val(src.val), openBrace(src.openBrace) {
  +       }
  +
  +       ~MissingBraceException() throw() {
  +       }
  +
  +       const char* what() const throw() {
  +          return "Missing brace exception";
  +       }
  +
  +       const String getMessage() const {
  +         StringBuffer oss;
  +         oss << _T("\"") << val
  +                 << _T("\" has no closing brace. Opening brace at position ")
  +                 << openBrace << _T(".");
  +         return oss.str();
  +       }
  +
  +    private:
  +       MissingBraceException& operator=(const MissingBraceException& src);
  +       const String val;
  +       const size_t openBrace;
  +    };
  +  }
  +}
  +
   String OptionConverter::convertSpecialChars(const String& s)
   {
   	TCHAR c;
  @@ -222,11 +257,7 @@
   			k = val.find(delimStop, j);
   			if(k == -1)
   			{
  -				StringBuffer oss;
  -				oss << _T("\"") << val
  -					<< _T("\" has no closing brace. Opening brace at position ")
  -					<< j << _T(".");
  -				throw IllegalArgumentException(oss.str());
  +				throw MissingBraceException(val, j);
   			}
   			else
   			{
  
  
  
  1.9       +1 -1      logging-log4cxx/src/properties.cpp
  
  Index: properties.cpp
  ===================================================================
  RCS file: /home/cvs/logging-log4cxx/src/properties.cpp,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- properties.cpp	22 Oct 2004 15:13:36 -0000	1.8
  +++ properties.cpp	25 Oct 2004 04:44:03 -0000	1.9
  @@ -292,7 +292,7 @@
   
   		if (in.bad())
   		{
  -			throw IOException("IOException in PropertyParser::get");
  +			throw IOException();
   		}
   
   		return true;
  
  
  
  1.4       +1 -1      logging-log4cxx/src/propertyresourcebundle.cpp
  
  Index: propertyresourcebundle.cpp
  ===================================================================
  RCS file: /home/cvs/logging-log4cxx/src/propertyresourcebundle.cpp,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- propertyresourcebundle.cpp	22 Oct 2004 17:35:30 -0000	1.3
  +++ propertyresourcebundle.cpp	25 Oct 2004 04:44:03 -0000	1.4
  @@ -43,7 +43,7 @@
   	}
   	while (resourceBundle != 0);
   
  -	throw MissingResourceException(((String)"Missing resource ") + key);
  +	throw MissingResourceException(key);
   
   	return resource;
   }
  
  
  
  1.11      +1 -1      logging-log4cxx/src/socketappender.cpp
  
  Index: socketappender.cpp
  ===================================================================
  RCS file: /home/cvs/logging-log4cxx/src/socketappender.cpp,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- socketappender.cpp	22 Oct 2004 17:35:30 -0000	1.10
  +++ socketappender.cpp	25 Oct 2004 04:44:03 -0000	1.11
  @@ -256,7 +256,7 @@
   		{
   			LogLog::debug(_T("Could not connect to ")
   				 +socketAppender->address.getHostName()
  -				 +_T(". Exception is ") + e.getMessage());
  +				 +_T(". Exception is ") + e.what());
   		}
   	}
   
  
  
  
  1.18      +119 -7    logging-log4cxx/src/socketimpl.cpp
  
  Index: socketimpl.cpp
  ===================================================================
  RCS file: /home/cvs/logging-log4cxx/src/socketimpl.cpp,v
  retrieving revision 1.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- socketimpl.cpp	22 Oct 2004 17:35:30 -0000	1.17
  +++ socketimpl.cpp	25 Oct 2004 04:44:03 -0000	1.18
  @@ -42,6 +42,9 @@
   #include <string.h>
   #include <assert.h>
   
  +
  +
  +
   #if defined(WIN32) || defined(_WIN32)
   namespace {
       class WinSockInitializer {
  @@ -59,11 +62,48 @@
   }
   #endif
   
  -const String SocketException::createMessage() {
  +SocketException::SocketException() {
  +}
  +
  +SocketException::SocketException(const SocketException& src)
  +   : IOException(src) {
  +}
  +
  +
  +SocketException::~SocketException() throw() {
  +}
  +
  +const char* SocketException::what() const throw() {
  +  return "SocketException";
  +}
  +
  +
  +PlatformSocketException::PlatformSocketException() {
  +   errorNumber = errno;
  +}
  +
  +PlatformSocketException::PlatformSocketException(const PlatformSocketException& src)
  +   : SocketException(src), errorNumber(src.getErrorNumber()) {
  +}
  +
  +long PlatformSocketException::getErrorNumber() const {
  +  return errorNumber;
  +}
  +
  +PlatformSocketException::~PlatformSocketException() throw() {
  +}
  +
  +
  +const char* PlatformSocketException::what() const throw() {
  +   return "Socket exception";
  +}
  +
  +
  +const String PlatformSocketException::getMessage() const {
     #if defined(WIN32) || defined(_WIN32)
             String message;
             TCHAR messageBuffer[256];
  -          DWORD dwError = ::WSAGetLastError();
  +          DWORD dwError = errorNumber;
   
             if (dwError != 0)
             {
  @@ -87,20 +127,92 @@
                     }
                     else
                     {
  -                          itot(::WSAGetLastError(), messageBuffer, 10);
  +                          itot(errorNumber, messageBuffer, 10);
                             message = messageBuffer;
                     }
             }
     #else
  -          USES_CONVERSION;
  -          const TCHAR* message = A2T(strerror(errno));
  +  const size_t bufsize = 512;
  +  char buf[bufsize];
  +  const char* message;
  +  #if defined(__GNUC__)
  +  message = strerror_r(errorNumber, buf, bufsize);
  +  #else
  +  int stat = strerror_r(errorNumber, buf, bufsize);
  +  if (stat == 0) {
  +    message = buf;
  +  } else {
  +    message = "Unrecognized errno";
  +  }
     #endif
  +#endif
     return message;
   }
   
  -SocketException::SocketException() : IOException(getMessage()) {
  +ConnectException::ConnectException() {
  +}
  +
  +ConnectException::ConnectException(const ConnectException& src)
  +   : PlatformSocketException(src) {
   }
   
  +ConnectException::~ConnectException() throw() {
  +}
  +
  +
  +const char* ConnectException::what() const throw() {
  +   return "Connect exception";
  +}
  +
  +BindException::BindException() {
  +}
  +
  +BindException::BindException(const BindException& src)
  +   : PlatformSocketException(src) {
  +}
  +
  +BindException::~BindException() throw() {
  +}
  +
  +
  +const char* BindException::what() const throw() {
  +   return "Bind exception";
  +}
  +
  +
  +InterruptedIOException::InterruptedIOException() {
  +}
  +
  +InterruptedIOException::InterruptedIOException(const InterruptedIOException& src)
  +   : IOException(src) {
  +}
  +
  +InterruptedIOException::~InterruptedIOException() throw() {
  +}
  +
  +
  +const char* InterruptedIOException::what() const throw() {
  +   return "Interrupted IO exception";
  +}
  +
  +SocketTimeoutException::SocketTimeoutException() {
  +}
  +
  +SocketTimeoutException::SocketTimeoutException(const SocketTimeoutException& src)
  +   : InterruptedIOException(src) {
  +}
  +
  +SocketTimeoutException::~SocketTimeoutException() throw() {
  +}
  +
  +
  +const char* SocketTimeoutException::what() const throw() {
  +   return "Socket timeout exception";
  +}
  +
  +
  +
  +
   SocketImpl::SocketImpl() : fd(0), localport(-1), port(0), timeout(-1), address()
   {
   }
  @@ -142,7 +254,7 @@
   		int retval = ::select(this->fd+1, &rfds, NULL, NULL, &tv);
   		if (retval == 0)
   		{
  -			throw SocketTimeoutException("Socket timeout");
  +			throw SocketTimeoutException();
   		}
   
   		assert(FD_ISSET(this->fd, &rfds));
  
  
  
  1.8       +1 -1      logging-log4cxx/src/socketinputstream.cpp
  
  Index: socketinputstream.cpp
  ===================================================================
  RCS file: /home/cvs/logging-log4cxx/src/socketinputstream.cpp,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- socketinputstream.cpp	22 Oct 2004 17:35:30 -0000	1.7
  +++ socketinputstream.cpp	25 Oct 2004 04:44:03 -0000	1.8
  @@ -157,7 +157,7 @@
   	{
   		if (size > 1024)
   		{
  -			throw SocketException();
  +			throw SocketMessageTooLargeException();
   		}
   
   		TCHAR * buffer;
  
  
  
  1.14      +10 -10    logging-log4cxx/src/system.cpp
  
  Index: system.cpp
  ===================================================================
  RCS file: /home/cvs/logging-log4cxx/src/system.cpp,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- system.cpp	13 Aug 2004 12:27:48 -0000	1.13
  +++ system.cpp	25 Oct 2004 04:44:03 -0000	1.14
  @@ -1,19 +1,19 @@
   /*
    * Copyright 2003,2004 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.
    * You may obtain a copy of the License at
  - * 
  + *
    *      http://www.apache.org/licenses/LICENSE-2.0
  - * 
  + *
    * Unless required by applicable law or agreed to in writing, software
    * distributed under the License is distributed on an "AS IS" BASIS,
    * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    * See the License for the specific language governing permissions and
    * limitations under the License.
    */
  - 
  +
   #include <log4cxx/helpers/system.h>
   
   #if defined(LOG4CXX_HAVE_FTIME)
  @@ -51,9 +51,9 @@
   {
   	if (key.empty())
   	{
  -		throw IllegalArgumentException(_T("key is empty"));
  +		throw IllegalArgumentException();
   	}
  -	
  +
   	USES_CONVERSION;
   	char * value = ::getenv(T2A(key.c_str()));
   	if (value == 0)
  @@ -70,15 +70,15 @@
   {
   	if (key.empty())
   	{
  -		throw IllegalArgumentException(_T("key is empty"));
  +		throw IllegalArgumentException();
   	}
  -	
  +
   #ifndef LOG4CXX_HAVE_SETENV
   	String strEnv = key + _T("=") + value;
   	USES_CONVERSION;
   	::putenv((char *)T2A(strEnv.c_str()));
   #else
  -	/* WARNING ! 
  +	/* WARNING !
   	We don't use putenv with glibc, because it doesn't make
   	a copy of the string, but try to keep the pointer
   	cf. man 3 putenv.
  @@ -93,7 +93,7 @@
   void System::setProperties(const Properties& props)
   {
   	std::vector<String> propertyNames = props.propertyNames();
  -	
  +
   	for (std::vector<String>::iterator it = propertyNames.begin();
   	it != propertyNames.end(); it++)
   	{
  
  
  
  1.17      +3 -3      logging-log4cxx/src/thread.cpp
  
  Index: thread.cpp
  ===================================================================
  RCS file: /home/cvs/logging-log4cxx/src/thread.cpp,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- thread.cpp	22 Oct 2004 17:35:30 -0000	1.16
  +++ thread.cpp	25 Oct 2004 04:44:03 -0000	1.17
  @@ -112,7 +112,7 @@
   //	LogLog::debug(_T("Thread::start"));
   	if (::pthread_create(&impl->thread, NULL, threadProc, this) != 0)
   	{
  -		throw ThreadException("Unable to start thread");
  +		throw ThreadException();
   	}
   #elif defined(LOG4CXX_HAVE_MS_THREAD)
   	unsigned long threadId = 0;
  @@ -120,7 +120,7 @@
   		(void *)::CreateThread(NULL, 0, threadProc, this, 0, &threadId);
   	if (impl->thread == 0)
   	{
  -		throw ThreadException("Unable to start thread");
  +		throw UnableToStartThreadException();
   	}
   #endif
   }
  @@ -152,7 +152,7 @@
   
   	if (!bSuccess)
   	{
  -		throw InterruptedException("Failure in Thread::join");
  +		throw InterruptedException();
   	}
   
   	LOGLOG_DEBUG(_T("Thread ended."));
  
  
  
  1.4       +4 -4      logging-log4cxx/tests/src/util/controlfilter.cpp
  
  Index: controlfilter.cpp
  ===================================================================
  RCS file: /home/cvs/logging-log4cxx/tests/src/util/controlfilter.cpp,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- controlfilter.cpp	22 Apr 2004 21:21:37 -0000	1.3
  +++ controlfilter.cpp	25 Oct 2004 04:44:03 -0000	1.4
  @@ -1,12 +1,12 @@
   /*
    * Copyright 2003,2004 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.
    * You may obtain a copy of the License at
  - * 
  + *
    *      http://www.apache.org/licenses/LICENSE-2.0
  - * 
  + *
    * Unless required by applicable law or agreed to in writing, software
    * distributed under the License is distributed on an "AS IS" BASIS,
    * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  @@ -35,7 +35,7 @@
   		}
   	}
   
  -	throw UnexpectedFormatException(String(_T("[")) + in + _T("]"));
  +	throw UnexpectedFormatException(in);
   }
   
   ControlFilter& ControlFilter::operator<<(const String& allowedPattern)
  
  
  
  1.6       +4 -2      logging-log4cxx/tests/src/util/filter.h
  
  Index: filter.h
  ===================================================================
  RCS file: /home/cvs/logging-log4cxx/tests/src/util/filter.h,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- filter.h	22 Oct 2004 15:13:36 -0000	1.5
  +++ filter.h	25 Oct 2004 04:44:03 -0000	1.6
  @@ -32,8 +32,10 @@
   	class UnexpectedFormatException : public helpers::Exception
   	{
   	public:
  -		UnexpectedFormatException(const String& message)
  -		: Exception(message) {}
  +		UnexpectedFormatException(const String& fmt) {}
  +                const char* what() const throw() {
  +                   return "UnexpectedFormatException";
  +                }
   	};
   
   	class Filter