From 1e8b74163157c32d3b12b2ad05f75930cadfc91b Mon Sep 17 00:00:00 2001 From: Sven-Torben Janus Date: Tue, 4 Oct 2016 16:01:00 +0200 Subject: [PATCH] Fixes livelock --- .../src/main/java/org/tomitribe/microscoped/core/Scope.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/microscoped-core/src/main/java/org/tomitribe/microscoped/core/Scope.java b/microscoped-core/src/main/java/org/tomitribe/microscoped/core/Scope.java index eebca4c..a18b023 100644 --- a/microscoped-core/src/main/java/org/tomitribe/microscoped/core/Scope.java +++ b/microscoped-core/src/main/java/org/tomitribe/microscoped/core/Scope.java @@ -43,7 +43,11 @@ public Key getKey() { * @return existing or newly created bean instance, never null */ public T get(final Contextual contextual, final CreationalContext creationalContext) { - return (T) instances.computeIfAbsent(contextual, c -> new Instance<>(contextual, creationalContext)).get(); + if (!instances.containsKey(contextual)) { + final Instance instance = new Instance<>(contextual, creationalContext); + instances.putIfAbsent(contextual, instance); + } + return (T) instances.get(contextual).get(); } /**