X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Finternal%2Fruntime%2FCmsContextImpl.java;h=01d285b8cfd2767b8d4252b5cb93cb30861950a9;hb=091d43fef5f8e88c7081340138eb1bb33c5862a2;hp=bd54b20594b5e7200d0a3e04f975e8cfc13ab354;hpb=c7eb04e5cd6049c24b347a56f3c80484d329e2bc;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms/src/org/argeo/cms/internal/runtime/CmsContextImpl.java b/org.argeo.cms/src/org/argeo/cms/internal/runtime/CmsContextImpl.java index bd54b2059..01d285b8c 100644 --- a/org.argeo.cms/src/org/argeo/cms/internal/runtime/CmsContextImpl.java +++ b/org.argeo.cms/src/org/argeo/cms/internal/runtime/CmsContextImpl.java @@ -44,6 +44,9 @@ public class CmsContextImpl implements CmsContext { private Long availableSince; + // time in ms to wait for CMS to be ready + private final long readynessTimeout = 30 * 1000; + // CMS sessions private Map cmsSessionsByUuid = new HashMap<>(); private Map cmsSessionsByLocalId = new HashMap<>(); @@ -56,9 +59,16 @@ public class CmsContextImpl implements CmsContext { defaultLocale = locales.get(0); new Thread(() -> { - while (!checkReadiness()) { + long begin = System.currentTimeMillis(); + long duration = 0; + readyness: while (!checkReadiness()) { + duration = System.currentTimeMillis() - begin; + if (duration > readynessTimeout) { + log.error("## CMS not ready after " + duration + " ms. Giving up checking."); + break readyness; + } try { - Thread.sleep(500); + Thread.sleep(100); } catch (InterruptedException e) { } }