diff --git a/ChangeLog/7.1.3_dev.txt b/ChangeLog/7.1.3_dev.txt
index e69de29bb2..ae0d7d4e6e 100644
--- a/ChangeLog/7.1.3_dev.txt
+++ b/ChangeLog/7.1.3_dev.txt
@@ -0,0 +1 @@
+[main] Addressed race condition issue with TranslatorState.NonVisitableExpressions
\ No newline at end of file
diff --git a/Orm/Xtensive.Orm/Orm/Linq/LocalCollectionKeyTypeExtractor.cs b/Orm/Xtensive.Orm/Orm/Linq/LocalCollectionKeyTypeExtractor.cs
index db5884c8d2..0afc1c4d4f 100644
--- a/Orm/Xtensive.Orm/Orm/Linq/LocalCollectionKeyTypeExtractor.cs
+++ b/Orm/Xtensive.Orm/Orm/Linq/LocalCollectionKeyTypeExtractor.cs
@@ -24,14 +24,14 @@ public static Type Extract(BinaryExpression expression)
return key.EntityType.UnderlyingType;
}
- var expr = VisitBinaryExpession(expression);
+ var expr = VisitBinaryExpression(expression);
if (expr.Type.IsSubclassOf(WellKnownOrmTypes.Entity)) {
return expr.Type;
}
throw new NotSupportedException(string.Format(Strings.ExCurrentTypeXIsNotSupported, expr.Type));
}
- private static Expression VisitBinaryExpession(BinaryExpression binaryExpression)
+ private static Expression VisitBinaryExpression(BinaryExpression binaryExpression)
{
if (!(binaryExpression.Right is MemberExpression memberExpression)) {
throw new InvalidOperationException(string.Format(Strings.ExCantConvertXToY, binaryExpression.Type, typeof(MemberExpression)));
diff --git a/Orm/Xtensive.Orm/Orm/Linq/Translator.Queryable.cs b/Orm/Xtensive.Orm/Orm/Linq/Translator.Queryable.cs
index 3128d3e508..d8322aa22a 100644
--- a/Orm/Xtensive.Orm/Orm/Linq/Translator.Queryable.cs
+++ b/Orm/Xtensive.Orm/Orm/Linq/Translator.Queryable.cs
@@ -33,7 +33,9 @@ internal sealed partial class Translator : QueryableVisitor
private readonly TranslatorContext context;
private readonly bool tagsEnabled;
- internal TranslatorState State { get; private set; } = TranslatorState.InitState;
+ internal TranslatorState State { get; private set; } = new(TranslatorState.InitState) {
+ NonVisitableExpressions = new()
+ };
protected override Expression VisitConstant(ConstantExpression c)
{
diff --git a/Orm/Xtensive.Orm/Orm/Linq/TranslatorState.cs b/Orm/Xtensive.Orm/Orm/Linq/TranslatorState.cs
index 1a83e0248f..0ac6c242e2 100644
--- a/Orm/Xtensive.Orm/Orm/Linq/TranslatorState.cs
+++ b/Orm/Xtensive.Orm/Orm/Linq/TranslatorState.cs
@@ -70,7 +70,7 @@ public TranslatorScope(Translator translator)
///
- /// Expessions that were constructed during original expression translation
+ /// Expressions that were constructed during original expression translation
/// and aim to replace original parts so they are avoidable to visit by Linq translator.
///
///