Description
From imspecting the code there appears to be a race condition if two threads call LoggingEvent.LookupProperty concurrently. One thread may call CreateCompositeProperties and the other might access m_compositeProperties before it is fully created.
public object LookupProperty(string key)
{
if (m_data.Properties != null)
if (m_compositeProperties == null)
{ CreateCompositeProperties(); } return m_compositeProperties[key];
}
private void CreateCompositeProperties()
{
m_compositeProperties = new CompositeProperties();
if (m_eventProperties != null)
{ m_compositeProperties.Add(m_eventProperties); }... etc