From d66651cea09aff7b594a4b5ecd8cb7d59a214dc4 Mon Sep 17 00:00:00 2001 From: Tobias Ibounig Date: Fri, 5 Jun 2026 09:24:24 +0200 Subject: [PATCH] perf: cache clientMetadata lambda to avoid per-call allocation Signed-off-by: Tobias Ibounig --- src/main/java/dev/openfeature/sdk/OpenFeatureClient.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/dev/openfeature/sdk/OpenFeatureClient.java b/src/main/java/dev/openfeature/sdk/OpenFeatureClient.java index 0d5d0e643..dd64700ef 100644 --- a/src/main/java/dev/openfeature/sdk/OpenFeatureClient.java +++ b/src/main/java/dev/openfeature/sdk/OpenFeatureClient.java @@ -51,6 +51,7 @@ public class OpenFeatureClient implements Client { private final AtomicReference evaluationContext = new AtomicReference<>(); private final HookSupport hookSupport; + private final ClientMetadata clientMetadata; /** * Deprecated public constructor. Use OpenFeature.API.getClient() instead. @@ -70,6 +71,7 @@ public OpenFeatureClient(OpenFeatureAPI openFeatureAPI, String domain, String ve this.version = version; this.hookSupport = new HookSupport(); this.clientHooks = new ConcurrentLinkedQueue<>(); + this.clientMetadata = this::getDomain; } /** @@ -467,7 +469,7 @@ public FlagEvaluationDetails getObjectDetails( @Override public ClientMetadata getMetadata() { - return this::getDomain; + return clientMetadata; } /**