Affects: \5.3.10,The same goes for the latest version 5.3.16

The source code for the last step is

package org.springframework.expression.spel.ast.SpelNodeImpl 
@Override
    public void setValue(ExpressionState expressionState, @Nullable Object newValue) throws EvaluationException {
        throw new SpelEvaluationException(getStartPosition(), SpelMessage.SETVALUE_NOT_SUPPORTED, getClass());
    }

Why does this method throw an exception directly? Why does the same expression, getValue, work correctly, while setValue reports an error? As follow: BC5951CE-DEA3-4474-BD89-3EE290E48872.png This part of the logic works fine, but the latter part does not 75F1390F-9D2D-45c3-881E-48EC7531BCC1.png

Comment From: rstoyanchev

Please, avoid images when you can paste snippets of text.

Comment From: rstoyanchev

Thanks for getting in touch, but there is insufficient information to determine there is an actual issue vs an expected outcome, and as such it is better suited to Stack Overflow. As mentioned in the guidelines for contributing, we prefer to use the issue tracker only for bugs and enhancements. Feel free to update this issue with a link to the re-posted question (so that other people can find it) or add some more details if you feel this is a genuine bug.

Consider creating a small sample to isolate the issue. If you suspect a SpEL issue, try using SpelExpressionParser to see if it can parse the expression and if the syntax used is supported.