From d55981c631cc04db0d4ca0ec4bfb0ac3702e3565 Mon Sep 17 00:00:00 2001 From: Tobias Ibounig Date: Fri, 5 Jun 2026 09:26:59 +0200 Subject: [PATCH] perf: replace copy+reverse with index-based traversal in executeBeforeHooks Signed-off-by: Tobias Ibounig --- src/main/java/dev/openfeature/sdk/HookSupport.java | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/main/java/dev/openfeature/sdk/HookSupport.java b/src/main/java/dev/openfeature/sdk/HookSupport.java index 0254c07fd..821e4fd06 100644 --- a/src/main/java/dev/openfeature/sdk/HookSupport.java +++ b/src/main/java/dev/openfeature/sdk/HookSupport.java @@ -1,7 +1,6 @@ package dev.openfeature.sdk; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import java.util.Optional; import lombok.extern.slf4j.Slf4j; @@ -51,10 +50,9 @@ public void setHookContexts( public void executeBeforeHooks(HookSupportData data) { // These traverse backwards from normal. - List> reversedHooks = new ArrayList<>(data.getHooks()); - Collections.reverse(reversedHooks); - - for (Pair hookContextPair : reversedHooks) { + List> hooks = data.getHooks(); + for (int i = hooks.size() - 1; i >= 0; i--) { + var hookContextPair = hooks.get(i); var hook = hookContextPair.getKey(); var hookContext = hookContextPair.getValue();