nicko       2005/04/03 11:07:17

  Modified:    src/Core LoggingEvent.cs
  Log:
  Fix for LOG4NET-21. Remove from fixedProperties any key-value pairs where the 
key or value (or fixed value) is null
  
  Revision  Changes    Path
  1.20      +17 -8     logging-log4net/src/Core/LoggingEvent.cs
  
  Index: LoggingEvent.cs
  ===================================================================
  RCS file: /home/cvs/logging-log4net/src/Core/LoggingEvent.cs,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- LoggingEvent.cs   28 Jan 2005 20:47:28 -0000      1.19
  +++ LoggingEvent.cs   3 Apr 2005 18:07:17 -0000       1.20
  @@ -1281,19 +1281,28 @@
   
                                PropertiesDictionary fixedProperties = new 
PropertiesDictionary();
   
  -                             // Fix any IFixingRequired objects
  +                             // Validate properties
                                foreach(DictionaryEntry entry in 
flattenedProperties)
                                {
  -                                     string key = (string)entry.Key;
  -                                     object val = entry.Value;
  +                                     string key = entry.Key as string;
   
  -                                     IFixingRequired fixingRequired = val as 
IFixingRequired;
  -                                     if (fixingRequired != null)
  +                                     if (key != null)
                                        {
  -                                             val = 
fixingRequired.GetFixedObject();
  -                                     }
  +                                             object val = entry.Value;
   
  -                                     fixedProperties[key] = val;
  +                                             // Fix any IFixingRequired 
objects
  +                                             IFixingRequired fixingRequired 
= val as IFixingRequired;
  +                                             if (fixingRequired != null)
  +                                             {
  +                                                     val = 
fixingRequired.GetFixedObject();
  +                                             }
  +
  +                                             // Strip keys with null values
  +                                             if (val != null)
  +                                             {
  +                                                     fixedProperties[key] = 
val;
  +                                             }
  +                                     }
                                }
   
                                m_data.Properties = fixedProperties;
  
  
  

Reply via email to