From 3677c6847b9707250798fb334a98e5f7801b022b Mon Sep 17 00:00:00 2001 From: Harald Wolff-Thobaben Date: Tue, 20 Dec 2022 13:26:48 +0100 Subject: [PATCH] Add additional critical section to JSONMapper.GetOrBuildMapping(..) --- ln.json/ln.json.csproj | 2 +- ln.json/mapping/JSONMapper.cs | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/ln.json/ln.json.csproj b/ln.json/ln.json.csproj index 4c37b94..c0b6510 100644 --- a/ln.json/ln.json.csproj +++ b/ln.json/ln.json.csproj @@ -9,7 +9,7 @@ true 0.1.0.0 0.1.0.0 - 1.2.2 + 1.2.3 net5.0;net6.0 diff --git a/ln.json/mapping/JSONMapper.cs b/ln.json/mapping/JSONMapper.cs index db06040..e42ea04 100644 --- a/ln.json/mapping/JSONMapper.cs +++ b/ln.json/mapping/JSONMapper.cs @@ -66,7 +66,13 @@ namespace ln.json.mapping Dictionary mappingFactories = new Dictionary(); public virtual void AddMappingFactory(Type targetType, MappingFactory mappingFactory) => mappingFactories.Add(targetType, mappingFactory); - public virtual bool GetOrBuildMapping(Type nativeType, out JSONMapping mapping) => TryGetMapping(nativeType, out mapping) || TryBuildRememberedMapping(nativeType, out mapping); + public virtual bool GetOrBuildMapping(Type nativeType, out JSONMapping mapping) + { + lock (mappings) + { + return TryGetMapping(nativeType, out mapping) || TryBuildRememberedMapping(nativeType, out mapping); + } + } public virtual bool TryBuildRememberedMapping(Type nativeType,out JSONMapping mapping) {