X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;ds=sidebyside;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Finternal%2Fkernel%2FKernel.java;h=71b1a5bdd941e5f2489ac9055403eb9c2a4e166d;hb=7bc9403c96bbae11358978358cc902e3f2c6e508;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..71b1a5bdd 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(); @@ -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; }