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 18f68d190d9..7b59096cc1a 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 @@ -354,10 +354,12 @@ public class PropertyOrFieldReference extends SpelNodeImpl { @Override public TypedValue getValue() { - TypedValue value = this.ref.getValueInternal(this.contextObject, this.evalContext, this.autoGrowNullReferences); - if (this.ref.cachedReadAccessor instanceof CompilablePropertyAccessor) { - CompilablePropertyAccessor accessor = (CompilablePropertyAccessor) this.ref.cachedReadAccessor; - this.ref.exitTypeDescriptor = CodeFlow.toDescriptor(accessor.getPropertyType()); + TypedValue value = + this.ref.getValueInternal(this.contextObject, this.evalContext, this.autoGrowNullReferences); + PropertyAccessor accessorToUse = this.ref.cachedReadAccessor; + if (accessorToUse instanceof CompilablePropertyAccessor) { + this.ref.exitTypeDescriptor = + CodeFlow.toDescriptor(((CompilablePropertyAccessor) accessorToUse).getPropertyType()); } return value; }