diff --git a/spring-expression/src/main/java/org/springframework/expression/spel/ast/Elvis.java b/spring-expression/src/main/java/org/springframework/expression/spel/ast/Elvis.java index 155730f9ec5..482355f41c1 100644 --- a/spring-expression/src/main/java/org/springframework/expression/spel/ast/Elvis.java +++ b/spring-expression/src/main/java/org/springframework/expression/spel/ast/Elvis.java @@ -51,7 +51,7 @@ public class Elvis extends SpelNodeImpl { * null-safe operator. * @since 7.1 */ - private @Nullable String unwrappedOptionalDescriptor; + private volatile @Nullable String unwrappedOptionalDescriptor; public Elvis(int startPos, int endPos, SpelNodeImpl... args) { diff --git a/spring-expression/src/main/java/org/springframework/expression/spel/ast/Indexer.java b/spring-expression/src/main/java/org/springframework/expression/spel/ast/Indexer.java index 2a6ef4b2cce..464a73f07e9 100644 --- a/spring-expression/src/main/java/org/springframework/expression/spel/ast/Indexer.java +++ b/spring-expression/src/main/java/org/springframework/expression/spel/ast/Indexer.java @@ -108,7 +108,7 @@ public class Indexer extends SpelNodeImpl { private final boolean nullSafe; - private @Nullable IndexedType indexedType; + private volatile @Nullable IndexedType indexedType; private volatile @Nullable String originalPrimitiveExitTypeDescriptor; diff --git a/spring-expression/src/main/java/org/springframework/expression/spel/ast/MethodReference.java b/spring-expression/src/main/java/org/springframework/expression/spel/ast/MethodReference.java index 2b37979548c..ace09f1edd2 100644 --- a/spring-expression/src/main/java/org/springframework/expression/spel/ast/MethodReference.java +++ b/spring-expression/src/main/java/org/springframework/expression/spel/ast/MethodReference.java @@ -75,7 +75,7 @@ public class MethodReference extends SpelNodeImpl { private final String name; - private @Nullable Character originalPrimitiveExitTypeDescriptor; + private volatile @Nullable Character originalPrimitiveExitTypeDescriptor; /** * Tracks whether an {@link Optional} was unwrapped in @@ -84,7 +84,7 @@ public class MethodReference extends SpelNodeImpl { * compiled expression. * @since 7.1 */ - private boolean unwrapOptional; + private volatile boolean unwrapOptional; private volatile @Nullable CachedMethodExecutor cachedExecutor; diff --git a/spring-expression/src/main/java/org/springframework/expression/spel/ast/PropertyOrFieldReference.java b/spring-expression/src/main/java/org/springframework/expression/spel/ast/PropertyOrFieldReference.java index 07313f1a9bd..b5f5ff27f69 100644 --- a/spring-expression/src/main/java/org/springframework/expression/spel/ast/PropertyOrFieldReference.java +++ b/spring-expression/src/main/java/org/springframework/expression/spel/ast/PropertyOrFieldReference.java @@ -70,7 +70,7 @@ public class PropertyOrFieldReference extends SpelNodeImpl { private final String name; - private @Nullable String originalPrimitiveExitTypeDescriptor; + private volatile @Nullable String originalPrimitiveExitTypeDescriptor; /** * Tracks whether an {@link Optional} was unwrapped in @@ -78,7 +78,7 @@ public class PropertyOrFieldReference extends SpelNodeImpl { * null-safe operator and therefore needs to be unwrapped in a compiled expression. * @since 7.1 */ - private boolean unwrapOptional; + private volatile boolean unwrapOptional; private volatile @Nullable PropertyAccessor cachedReadAccessor;