Skip to content

Commit 0ed01bb

Browse files
authored
Fixed DefaultTypeInspector concurrency issue. (#8608)
1 parent 420465d commit 0ed01bb

File tree

1 file changed

+2
-8
lines changed

1 file changed

+2
-8
lines changed

src/HotChocolate/Core/src/Types/Types/Descriptors/Conventions/DefaultTypeInspector.cs

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public class DefaultTypeInspector(bool ignoreRequiredAttribute = false) : Conven
3030
private const string _clone = "<Clone>$";
3131

3232
private readonly TypeCache _typeCache = new();
33-
private readonly Dictionary<MemberInfo, ExtendedMethodInfo> _methods = new();
33+
private readonly ConcurrentDictionary<MethodInfo, ExtendedMethodInfo> _methods = new();
3434
private readonly ConcurrentDictionary<(Type, bool, bool), MemberInfo[]> _memberCache = new();
3535

3636
/// <summary>
@@ -181,13 +181,7 @@ public virtual IExtendedType GetArgumentType(
181181
private IExtendedType GetArgumentTypeInternal(ParameterInfo parameter)
182182
{
183183
var method = (MethodInfo)parameter.Member;
184-
185-
if (!_methods.TryGetValue(method, out var info))
186-
{
187-
info = ExtendedType.FromMethod(method, _typeCache);
188-
_methods[method] = info;
189-
}
190-
184+
var info = _methods.GetOrAdd(method, static (m, c) => ExtendedType.FromMethod(m, c), _typeCache);
191185
return info.ParameterTypes[parameter];
192186
}
193187

0 commit comments

Comments
 (0)