From f2fe79e56dabc20ae2b96fafa397ce512fb8ab65 Mon Sep 17 00:00:00 2001 From: Chengang Guan Date: Thu, 3 Sep 2026 16:11:12 +0800 Subject: [PATCH] Use ArrayList instead of LinkedList in CompositeRetryListener CompositeRetryListener currently uses LinkedList to store registered listeners. The primary operation on this list is iteration (traversing all listeners on every retry lifecycle event). ArrayList provides better iteration performance due to better cache locality and lower memory overhead. Closes gh-37231 Signed-off-by: Chengang Guan --- .../core/retry/support/CompositeRetryListener.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spring-core/src/main/java/org/springframework/core/retry/support/CompositeRetryListener.java b/spring-core/src/main/java/org/springframework/core/retry/support/CompositeRetryListener.java index 58ceb33aa44..7864d15db8f 100644 --- a/spring-core/src/main/java/org/springframework/core/retry/support/CompositeRetryListener.java +++ b/spring-core/src/main/java/org/springframework/core/retry/support/CompositeRetryListener.java @@ -16,7 +16,7 @@ package org.springframework.core.retry.support; -import java.util.LinkedList; +import java.util.ArrayList; import java.util.List; import org.jspecify.annotations.Nullable; @@ -42,7 +42,7 @@ import org.springframework.util.Assert; */ public class CompositeRetryListener implements RetryListener { - private final List listeners = new LinkedList<>(); + private final List listeners = new ArrayList<>(); /**