:bug: should lock hashtables for write (LOG4NET-646)
diff --git a/src/log4net/ObjectRenderer/RendererMap.cs b/src/log4net/ObjectRenderer/RendererMap.cs
index c785e27..a20ae19 100644
--- a/src/log4net/ObjectRenderer/RendererMap.cs
+++ b/src/log4net/ObjectRenderer/RendererMap.cs
@@ -22,7 +22,7 @@
 #if NETSTANDARD1_3
 using System.Reflection;
 #endif
-
+using System.Collections;
 using log4net.Util;
 
 namespace log4net.ObjectRenderer
@@ -49,30 +49,13 @@
 
 		#region Member Variables
 
-		private System.Collections.Hashtable m_map;
-		private System.Collections.Hashtable m_cache = new System.Collections.Hashtable();
+		private readonly Hashtable m_map = new();
+		private readonly Hashtable m_cache = new();
 
 		private static IObjectRenderer s_defaultRenderer = new DefaultRenderer();
 
 		#endregion
 
-		#region Constructors
-
-		/// <summary>
-		/// Default Constructor
-		/// </summary>
-		/// <remarks>
-		/// <para>
-		/// Default constructor.
-		/// </para>
-		/// </remarks>
-		public RendererMap() 
-		{
-			m_map = System.Collections.Hashtable.Synchronized(new System.Collections.Hashtable());
-		}
-
-		#endregion
-
 		/// <summary>
 		/// Render <paramref name="obj"/> using the appropriate renderer.
 		/// </summary>
@@ -137,7 +120,7 @@
 					catch(Exception ex)
 					{
 						// Exception rendering the object
-						log4net.Util.LogLog.Error(declaringType, "Exception while rendering object of type ["+obj.GetType().FullName+"]", ex);
+						LogLog.Error(declaringType, "Exception while rendering object of type ["+obj.GetType().FullName+"]", ex);
 
 						// return default message
 						string objectTypeName = "";
@@ -241,7 +224,10 @@
 				}
 
 				// Add to cache
-				m_cache[type] = result;
+				lock (m_cache)
+				{
+					m_cache[type] = result;
+				}
 			}
 
 			return result;
@@ -299,8 +285,15 @@
 		/// </remarks>
 		public void Clear() 
 		{
-			m_map.Clear();
-			m_cache.Clear();
+			lock (m_map)
+			{
+				m_map.Clear();
+			}
+
+			lock (m_cache)
+			{
+				m_cache.Clear();
+			}
 		}
 
 		/// <summary>
@@ -317,7 +310,10 @@
 		/// </remarks>
 		public void Put(Type typeToRender, IObjectRenderer renderer) 
 		{
-			m_cache.Clear();
+			lock (m_cache)
+			{
+				m_cache.Clear();
+			}
 
 			if (typeToRender == null)
 			{
@@ -328,7 +324,10 @@
 				throw new ArgumentNullException("renderer");
 			}
 
-			m_map[typeToRender] = renderer;
+			lock (m_map)
+			{
+				m_map[typeToRender] = renderer;
+			}
 		}	
 	}
 }