You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2019/10/07 21:12:22 UTC
[isis] 01/01: ISIS-2158: makes the ServiceInjectorDefault
thread-safe
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch v2
in repository https://gitbox.apache.org/repos/asf/isis.git
commit 1b4ad4d33d64373a87c09f4bca6b760b6112553c
Author: Andi Huber <ah...@apache.org>
AuthorDate: Mon Oct 7 23:12:12 2019 +0200
ISIS-2158: makes the ServiceInjectorDefault thread-safe
---
.../isis/runtime/services/ServiceInjectorTestUsingCodegenPlugin.java | 2 +-
.../org/apache/isis/metamodel/services/ServiceInjectorDefault.java | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/core/detached-tests/src/test/java/org/apache/isis/runtime/services/ServiceInjectorTestUsingCodegenPlugin.java b/core/detached-tests/src/test/java/org/apache/isis/runtime/services/ServiceInjectorTestUsingCodegenPlugin.java
index 1bd2c77..beef8e1 100644
--- a/core/detached-tests/src/test/java/org/apache/isis/runtime/services/ServiceInjectorTestUsingCodegenPlugin.java
+++ b/core/detached-tests/src/test/java/org/apache/isis/runtime/services/ServiceInjectorTestUsingCodegenPlugin.java
@@ -102,7 +102,7 @@ public class ServiceInjectorTestUsingCodegenPlugin {
final ExecutorService executor = Executors.newFixedThreadPool(10);
// setup 32 tasks
- final List<Callable<Integer>> tasks = IntStream.range(0, 32)
+ final List<Callable<Integer>> tasks = IntStream.range(0, 1000)
.<Callable<Integer>>mapToObj(index->()->{
// within each task setup a new calculator instance that adds the numbers from 1 .. 100 = 5050
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/services/ServiceInjectorDefault.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/services/ServiceInjectorDefault.java
index 655340b..b059a1a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/services/ServiceInjectorDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/services/ServiceInjectorDefault.java
@@ -56,8 +56,8 @@ public class ServiceInjectorDefault implements ServiceInjector {
@Inject private ServiceRegistry serviceRegistry;
@Inject private InjectorMethodEvaluator injectorMethodEvaluator;
- private final Map<Class<?>, Method[]> methodsByClassCache = _Maps.newHashMap();
- private final Map<Class<?>, Field[]> fieldsByClassCache = _Maps.newHashMap();
+ private final Map<Class<?>, Method[]> methodsByClassCache = _Maps.newConcurrentHashMap();
+ private final Map<Class<?>, Field[]> fieldsByClassCache = _Maps.newConcurrentHashMap();
@Override
public <T> T injectServicesInto(T domainObject, Consumer<InjectionPoint> onNotResolvable) {