aboutsummaryrefslogtreecommitdiffstats
path: root/server/sonar-server/src
diff options
context:
space:
mode:
authorSébastien Lesaint <sebastien.lesaint@sonarsource.com>2017-10-31 15:24:18 +0100
committerSébastien Lesaint <sebastien.lesaint@sonarsource.com>2017-11-03 14:29:16 +0100
commita6499246ce47e223255d91179fb6370f421da4d2 (patch)
tree98d211431c058fae7a5cf66d61e7124712bb6f9b /server/sonar-server/src
parent3f77b1c483891f478fd95cada5f5d1f6f1ea3b14 (diff)
downloadsonarqube-a6499246ce47e223255d91179fb6370f421da4d2.tar.gz
sonarqube-a6499246ce47e223255d91179fb6370f421da4d2.zip
SONAR-9973 ComponentContainer#stopComponent now never fail
and ensures all stoppable and/or disposable components in the container have their stop and/or dispose methods called
Diffstat (limited to 'server/sonar-server/src')
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/computation/task/container/TaskContainerImpl.java3
1 files changed, 2 insertions, 1 deletions
diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/task/container/TaskContainerImpl.java b/server/sonar-server/src/main/java/org/sonar/server/computation/task/container/TaskContainerImpl.java
index cd65f1c886d..27888a6f9be 100644
--- a/server/sonar-server/src/main/java/org/sonar/server/computation/task/container/TaskContainerImpl.java
+++ b/server/sonar-server/src/main/java/org/sonar/server/computation/task/container/TaskContainerImpl.java
@@ -32,6 +32,7 @@ import org.sonar.api.utils.log.Loggers;
import org.sonar.core.platform.ComponentContainer;
import org.sonar.core.platform.ContainerPopulator;
import org.sonar.core.platform.Module;
+import org.sonar.core.platform.StopSafeReflectionLifecycleStrategy;
import static java.util.Objects.requireNonNull;
@@ -62,7 +63,7 @@ public class TaskContainerImpl extends ComponentContainer implements TaskContain
*/
private static MutablePicoContainer createContainer(ComponentContainer parent) {
ComponentMonitor componentMonitor = new NullComponentMonitor();
- ReflectionLifecycleStrategy lifecycleStrategy = new ReflectionLifecycleStrategy(componentMonitor, "start", "stop", "close") {
+ ReflectionLifecycleStrategy lifecycleStrategy = new StopSafeReflectionLifecycleStrategy(componentMonitor) {
@Override
public boolean isLazy(ComponentAdapter<?> adapter) {
return adapter.getComponentImplementation().getAnnotation(EagerStart.class) == null;