From 86d81632c828e80019ff7048bb1e8bbf19d938b8 Mon Sep 17 00:00:00 2001 From: Sam Brannen <104798+sbrannen@users.noreply.github.com> Date: Fri, 7 Mar 2025 14:18:56 +0100 Subject: [PATCH] Consistently invoke isNullSafe() --- .../org/springframework/expression/spel/ast/Indexer.java | 8 ++++---- .../expression/spel/ast/MethodReference.java | 6 +++--- .../springframework/expression/spel/ast/Projection.java | 4 ++-- .../springframework/expression/spel/ast/Selection.java | 4 ++-- 4 files changed, 11 insertions(+), 11 deletions(-) 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 5134fe8368..a32c17f208 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 @@ -1,5 +1,5 @@ /* - * Copyright 2002-2024 the original author or authors. + * Copyright 2002-2025 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -166,7 +166,7 @@ public class Indexer extends SpelNodeImpl { Object target = context.getValue(); if (target == null) { - if (this.nullSafe) { + if (isNullSafe()) { return ValueRef.NullValueRef.INSTANCE; } // Raise a proper exception in case of a null target @@ -330,7 +330,7 @@ public class Indexer extends SpelNodeImpl { } Label skipIfNull = null; - if (this.nullSafe) { + if (isNullSafe()) { mv.visitInsn(DUP); skipIfNull = new Label(); Label continueLabel = new Label(); @@ -439,7 +439,7 @@ public class Indexer extends SpelNodeImpl { // If this indexer would return a primitive - and yet it is also marked // null-safe - then the exit type descriptor must be promoted to the box // type to allow a null value to be passed on. - if (this.nullSafe && CodeFlow.isPrimitive(descriptor)) { + if (isNullSafe() && CodeFlow.isPrimitive(descriptor)) { this.originalPrimitiveExitTypeDescriptor = descriptor; this.exitTypeDescriptor = CodeFlow.toBoxedDescriptor(descriptor); } 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 51c26fa7f2..41a5cb5d11 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 @@ -160,7 +160,7 @@ public class MethodReference extends SpelNodeImpl { } private void throwIfNotNullSafe(List argumentTypes) { - if (!this.nullSafe) { + if (!isNullSafe()) { throw new SpelEvaluationException(getStartPosition(), SpelMessage.METHOD_CALL_ON_NULL_OBJECT_NOT_ALLOWED, FormatHelper.formatMethodForMessage(this.name, argumentTypes)); @@ -258,7 +258,7 @@ public class MethodReference extends SpelNodeImpl { if (executorToCheck != null && executorToCheck.get() instanceof ReflectiveMethodExecutor reflectiveMethodExecutor) { Method method = reflectiveMethodExecutor.getMethod(); String descriptor = CodeFlow.toDescriptor(method.getReturnType()); - if (this.nullSafe && CodeFlow.isPrimitive(descriptor) && (descriptor.charAt(0) != 'V')) { + if (isNullSafe() && CodeFlow.isPrimitive(descriptor) && (descriptor.charAt(0) != 'V')) { this.originalPrimitiveExitTypeDescriptor = descriptor.charAt(0); this.exitTypeDescriptor = CodeFlow.toBoxedDescriptor(descriptor); } @@ -324,7 +324,7 @@ public class MethodReference extends SpelNodeImpl { } Label skipIfNull = null; - if (this.nullSafe && (descriptor != null || !isStatic)) { + if (isNullSafe() && (descriptor != null || !isStatic)) { skipIfNull = new Label(); Label continueLabel = new Label(); mv.visitInsn(DUP); diff --git a/spring-expression/src/main/java/org/springframework/expression/spel/ast/Projection.java b/spring-expression/src/main/java/org/springframework/expression/spel/ast/Projection.java index aaab0800c8..663e7b12be 100644 --- a/spring-expression/src/main/java/org/springframework/expression/spel/ast/Projection.java +++ b/spring-expression/src/main/java/org/springframework/expression/spel/ast/Projection.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2024 the original author or authors. + * Copyright 2002-2025 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -131,7 +131,7 @@ public class Projection extends SpelNodeImpl { } if (operand == null) { - if (this.nullSafe) { + if (isNullSafe()) { return ValueRef.NullValueRef.INSTANCE; } throw new SpelEvaluationException(getStartPosition(), SpelMessage.PROJECTION_NOT_SUPPORTED_ON_TYPE, "null"); diff --git a/spring-expression/src/main/java/org/springframework/expression/spel/ast/Selection.java b/spring-expression/src/main/java/org/springframework/expression/spel/ast/Selection.java index d7a76ad40d..07e7ab2aca 100644 --- a/spring-expression/src/main/java/org/springframework/expression/spel/ast/Selection.java +++ b/spring-expression/src/main/java/org/springframework/expression/spel/ast/Selection.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2024 the original author or authors. + * Copyright 2002-2025 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -199,7 +199,7 @@ public class Selection extends SpelNodeImpl { } if (operand == null) { - if (this.nullSafe) { + if (isNullSafe()) { return ValueRef.NullValueRef.INSTANCE; } throw new SpelEvaluationException(getStartPosition(), SpelMessage.INVALID_TYPE_FOR_SELECTION, "null");