X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Finternal%2Fkernel%2FKernel.java;h=3960be687ff91a0ec56408b30d8a167d01b134a9;hb=0dfcfef53a629cf38bade4f8605c5b7e507c7436;hp=1f562b817cfeff0f1bcafeb3bfb222d96c537750;hpb=2efce0621cf742d6ef077a1f13f8c76843c20ffb;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms/src/org/argeo/cms/internal/kernel/Kernel.java b/org.argeo.cms/src/org/argeo/cms/internal/kernel/Kernel.java index 1f562b817..3960be687 100644 --- a/org.argeo.cms/src/org/argeo/cms/internal/kernel/Kernel.java +++ b/org.argeo.cms/src/org/argeo/cms/internal/kernel/Kernel.java @@ -29,6 +29,8 @@ import javax.jcr.RepositoryFactory; import javax.jcr.Session; import javax.jcr.SimpleCredentials; import javax.security.auth.Subject; +import javax.security.auth.login.LoginContext; +import javax.security.auth.login.LoginException; import javax.transaction.TransactionManager; import javax.transaction.TransactionSynchronizationRegistry; import javax.transaction.UserTransaction; @@ -160,6 +162,13 @@ final class Kernel implements KernelHeader, KernelConstants, ServiceListener { throw new ArgeoException("Cannot initialize", e); } finally { Thread.currentThread().setContextClassLoader(currentContextCl); + // FIXME better manage lifecycle. + try { + new LoginContext(LOGIN_CONTEXT_KERNEL, + nodeSecurity.getKernelSubject()).logout(); + } catch (LoginException e) { + e.printStackTrace(); + } } long jvmUptime = ManagementFactory.getRuntimeMXBean().getUptime(); @@ -468,8 +477,8 @@ final class Kernel implements KernelHeader, KernelConstants, ServiceListener { // TODO find constants Object httpPort = sr.getProperty("http.port"); Object httpsPort = sr.getProperty("https.port"); - dataHttp = new DataHttp(httpService, repository); - nodeHttp = new NodeHttp(httpService); + dataHttp = new DataHttp(httpService); + nodeHttp = new NodeHttp(httpService, repository); if (log.isDebugEnabled()) log.debug(httpPortsMsg(httpPort, httpsPort)); } @@ -553,7 +562,7 @@ final class Kernel implements KernelHeader, KernelConstants, ServiceListener { rootThreadGroup.enumerate(threads); int nonDameonCount = 0; for (Thread t : threads) - if (!t.isDaemon()) + if (t != null && !t.isDaemon()) nonDameonCount++; return nonDameonCount; }