From 56ba878cf0c5c935ce50e4a26e2901891bff1da7 Mon Sep 17 00:00:00 2001 From: Chris Date: Tue, 7 Jul 2026 15:07:42 +0200 Subject: [PATCH 1/2] Make batchArgs contents nullable in batchUpdate Updated batchUpdate method signatures to allow nullable Object arrays. Fixes #37011 37011 Signed-off-by: Chris --- .../main/java/org/springframework/jdbc/core/JdbcTemplate.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/core/JdbcTemplate.java b/spring-jdbc/src/main/java/org/springframework/jdbc/core/JdbcTemplate.java index 6c91d5a2c025..f4d0436af06c 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/core/JdbcTemplate.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/core/JdbcTemplate.java @@ -1046,12 +1046,12 @@ public int[] batchUpdate(String sql, BatchPreparedStatementSetter pss) throws Da } @Override - public int[] batchUpdate(String sql, List batchArgs) throws DataAccessException { + public int[] batchUpdate(String sql, List<@Nullable Object[]> batchArgs) throws DataAccessException { return batchUpdate(sql, batchArgs, new int[0]); } @Override - public int[] batchUpdate(String sql, List batchArgs, int[] argTypes) throws DataAccessException { + public int[] batchUpdate(String sql, List<@Nullable Object[]> batchArgs, int[] argTypes) throws DataAccessException { if (batchArgs.isEmpty()) { return new int[0]; } From cde07865a916eed329cc7b2d8595668256897043 Mon Sep 17 00:00:00 2001 From: Chris Date: Tue, 7 Jul 2026 15:36:57 +0200 Subject: [PATCH 2/2] Add local nullability annotations to fix build --- .../main/java/org/springframework/jdbc/core/JdbcTemplate.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/core/JdbcTemplate.java b/spring-jdbc/src/main/java/org/springframework/jdbc/core/JdbcTemplate.java index f4d0436af06c..33b94792ddcf 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/core/JdbcTemplate.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/core/JdbcTemplate.java @@ -1061,9 +1061,9 @@ public int[] batchUpdate(String sql, List<@Nullable Object[]> batchArgs, int[] a new BatchPreparedStatementSetter() { @Override public void setValues(PreparedStatement ps, int i) throws SQLException { - Object[] values = batchArgs.get(i); + @Nullable Object[] values = batchArgs.get(i); int colIndex = 0; - for (Object value : values) { + for (@Nullable Object value : values) { colIndex++; if (value instanceof SqlParameterValue paramValue) { StatementCreatorUtils.setParameterValue(ps, colIndex, paramValue, paramValue.getValue());