This rule reports syntax errors in Spring Expression Language (SpEL) expressions. == Why is this an issue? SpEL is used in Spring annotations and is parsed by the Spring framework, not by the Java compiler. This means that invalid SpEL expressions are not detected during Java compile time. They will cause exceptions during runtime instead, or even fail silently with the expression string interpreted as a simple string literal by Spring. === Exceptions This rule does report syntactical errors in SpEL expressions but does not consider semantic errors, such as unknown identifiers or incompatible operand data types. == How to fix it Correct the syntax error in the SpEL expression. === Code examples ==== Noncompliant code example [source,java,diff-id=1,diff-type=noncompliant] ---- @Value("#{systemProperties['user.region'}") // Noncompliant, unclosed "[" private String region; ---- [source,java,diff-id=2,diff-type=noncompliant] ---- @Value("#{'${listOfValues}' split(',')}") // Noncompliant, missing operator private List valuesList; ---- [source,java,diff-id=3,diff-type=noncompliant] ---- @Value("#{T(java.lang.Math).random() * 64h}") // Noncompliant, invalid number private Double randPercent; ---- [source,java,diff-id=4,diff-type=noncompliant] ---- @Query("SELECT u FROM User u WHERE u.status = :#{#status+}") // Noncompliant, missing operand for "+" List findUsersByStatus(@Param("status") String status); ---- ==== Compliant solution [source,java,diff-id=1,diff-type=compliant] ---- @Value("#{systemProperties['user.region']}") // Compliant private String region; ---- [source,java,diff-id=2,diff-type=compliant] ---- @Value("#{'${listOfValues}'.split(',')}") // Compliant private List valuesList; ---- [source,java,diff-id=3,diff-type=compliant] ---- @Value("#{T(java.lang.Math).random() * 100.0}") // Compliant private Double randPercent; ---- [source,java,diff-id=4,diff-type=compliant] ---- @Query("SELECT u FROM User u WHERE u.status = :#{#status+42}") // Compliant List findUsersByStatus(@Param("status") String status); ---- == Resources === Documentation - https://docs.spring.io/spring-framework/reference/core/expressions.html[Spring Framework - Spring Expression Language (SpEL)]