X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms.jcr%2Fsrc%2Forg%2Fargeo%2Fcms%2Fjcr%2Finternal%2FRepositoryContextsFactory.java;h=2ffac9c4c9478dd2e24fd0d544605598147c5035;hb=6862cee138ca8ed2bbf6427b20b389a56b5df32f;hp=2b9ad0043f1b5731c42d11b498a4859167971564;hpb=33920c58e7946ff85b72c2ff513eb8ee4d2e1aa8;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms.jcr/src/org/argeo/cms/jcr/internal/RepositoryContextsFactory.java b/org.argeo.cms.jcr/src/org/argeo/cms/jcr/internal/RepositoryContextsFactory.java index 2b9ad0043..2ffac9c4c 100644 --- a/org.argeo.cms.jcr/src/org/argeo/cms/jcr/internal/RepositoryContextsFactory.java +++ b/org.argeo.cms.jcr/src/org/argeo/cms/jcr/internal/RepositoryContextsFactory.java @@ -38,10 +38,14 @@ public class RepositoryContextsFactory implements ManagedServiceFactory { for (String pid : repositories.keySet()) { try { RepositoryContext repositoryContext = repositories.get(pid); - repositoryContext.getRepository().shutdown(); - if (log.isDebugEnabled()) - log.debug("Shut down repository " + pid - + (pidToCn.containsKey(pid) ? " (" + pidToCn.get(pid) + ")" : "")); + // Must start in another thread otherwise shutdown is interrupted + // TODO use an executor? + new Thread(() -> { + repositoryContext.getRepository().shutdown(); + if (log.isDebugEnabled()) + log.debug("Shut down repository " + pid + + (pidToCn.containsKey(pid) ? " (" + pidToCn.get(pid) + ")" : "")); + }, "Shutdown JCR repository " + pid).start(); } catch (Exception e) { log.error("Error when shutting down Jackrabbit repository " + pid, e); }