From a2be6ba0c3c2ac6051545cdc75c415be44b77fea Mon Sep 17 00:00:00 2001 From: Mahmoud Ben Hassine Date: Mon, 12 Jun 2023 15:42:02 +0200 Subject: [PATCH] Replace unmodifiable collection creation with collection factory methods --- .../batch/core/JobExecution.java | 4 +-- ...kson2ExecutionContextStringSerializer.java | 30 +++++++++---------- .../org/springframework/batch/item/Chunk.java | 2 +- 3 files changed, 17 insertions(+), 19 deletions(-) diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/JobExecution.java b/spring-batch-core/src/main/java/org/springframework/batch/core/JobExecution.java index 1e7240645..b4520201b 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/JobExecution.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/JobExecution.java @@ -1,5 +1,5 @@ /* - * Copyright 2006-2022 the original author or authors. + * Copyright 2006-2023 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. @@ -239,7 +239,7 @@ public class JobExecution extends Entity { * @return the step executions that were registered. */ public Collection getStepExecutions() { - return Collections.unmodifiableList(new ArrayList<>(stepExecutions)); + return List.copyOf(stepExecutions); } /** diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/Jackson2ExecutionContextStringSerializer.java b/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/Jackson2ExecutionContextStringSerializer.java index 34489d14b..9b86f3c45 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/Jackson2ExecutionContextStringSerializer.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/Jackson2ExecutionContextStringSerializer.java @@ -284,22 +284,20 @@ public class Jackson2ExecutionContextStringSerializer implements ExecutionContex */ static class TrustedTypeIdResolver implements TypeIdResolver { - private static final Set TRUSTED_CLASS_NAMES = Collections - .unmodifiableSet(new HashSet<>(Arrays.asList("javax.xml.namespace.QName", "java.util.UUID", - "java.util.ArrayList", "java.util.Arrays$ArrayList", "java.util.LinkedList", - "java.util.Collections$EmptyList", "java.util.Collections$EmptyMap", - "java.util.Collections$EmptySet", "java.util.Collections$UnmodifiableRandomAccessList", - "java.util.Collections$UnmodifiableList", "java.util.Collections$UnmodifiableMap", - "java.util.Collections$UnmodifiableSet", "java.util.Collections$SingletonList", - "java.util.Collections$SingletonMap", "java.util.Collections$SingletonSet", "java.util.Date", - "java.time.Instant", "java.time.Duration", "java.time.LocalDate", "java.time.LocalTime", - "java.time.LocalDateTime", "java.sql.Timestamp", "java.net.URL", "java.util.TreeMap", - "java.util.HashMap", "java.util.LinkedHashMap", "java.util.TreeSet", "java.util.HashSet", - "java.util.LinkedHashSet", "java.lang.Boolean", "java.lang.Byte", "java.lang.Short", - "java.lang.Integer", "java.lang.Long", "java.lang.Double", "java.lang.Float", - "java.math.BigDecimal", "java.math.BigInteger", "java.lang.String", "java.lang.Character", - "java.lang.CharSequence", "java.util.Properties", "[Ljava.util.Properties;", - "org.springframework.batch.core.JobParameter", "org.springframework.batch.core.JobParameters"))); + private static final Set TRUSTED_CLASS_NAMES = Set.of("javax.xml.namespace.QName", "java.util.UUID", + "java.util.ArrayList", "java.util.Arrays$ArrayList", "java.util.LinkedList", + "java.util.Collections$EmptyList", "java.util.Collections$EmptyMap", "java.util.Collections$EmptySet", + "java.util.Collections$UnmodifiableRandomAccessList", "java.util.Collections$UnmodifiableList", + "java.util.Collections$UnmodifiableMap", "java.util.Collections$UnmodifiableSet", + "java.util.Collections$SingletonList", "java.util.Collections$SingletonMap", + "java.util.Collections$SingletonSet", "java.util.Date", "java.time.Instant", "java.time.Duration", + "java.time.LocalDate", "java.time.LocalTime", "java.time.LocalDateTime", "java.sql.Timestamp", + "java.net.URL", "java.util.TreeMap", "java.util.HashMap", "java.util.LinkedHashMap", + "java.util.TreeSet", "java.util.HashSet", "java.util.LinkedHashSet", "java.lang.Boolean", + "java.lang.Byte", "java.lang.Short", "java.lang.Integer", "java.lang.Long", "java.lang.Double", + "java.lang.Float", "java.math.BigDecimal", "java.math.BigInteger", "java.lang.String", + "java.lang.Character", "java.lang.CharSequence", "java.util.Properties", "[Ljava.util.Properties;", + "org.springframework.batch.core.JobParameter", "org.springframework.batch.core.JobParameters"); private final Set trustedClassNames = new LinkedHashSet<>(TRUSTED_CLASS_NAMES); diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/Chunk.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/Chunk.java index 03c285acb..fbbe2b43f 100644 --- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/Chunk.java +++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/Chunk.java @@ -103,7 +103,7 @@ public class Chunk implements Iterable, Serializable { * @return a copy of the items to be processed as an unmodifiable list */ public List getItems() { - return Collections.unmodifiableList(new ArrayList<>(items)); + return List.copyOf(items); } /**