diff --git a/src/main/java/dev/openfeature/sdk/HookSupport.java b/src/main/java/dev/openfeature/sdk/HookSupport.java index 0254c07fd..bf92658fd 100644 --- a/src/main/java/dev/openfeature/sdk/HookSupport.java +++ b/src/main/java/dev/openfeature/sdk/HookSupport.java @@ -58,10 +58,8 @@ public void executeBeforeHooks(HookSupportData data) { var hook = hookContextPair.getKey(); var hookContext = hookContextPair.getValue(); - Optional returnedEvalContext = Optional.ofNullable( - hook.before(hookContext, data.getHints())) - .orElse(Optional.empty()); - if (returnedEvalContext.isPresent()) { + Optional returnedEvalContext = hook.before(hookContext, data.getHints()); + if (returnedEvalContext != null && returnedEvalContext.isPresent()) { var returnedContext = returnedEvalContext.get(); // yes, we want to check for reference equality here, this prevents recursive layered contexts if (returnedContext != hookContext.getCtx() && !returnedContext.isEmpty()) {