Prevent double loading of data servlets in non-clean state.
authorMathieu Baudier <mbaudier@argeo.org>
Wed, 7 Feb 2018 00:34:46 +0000 (01:34 +0100)
committerMathieu Baudier <mbaudier@argeo.org>
Wed, 7 Feb 2018 00:34:46 +0000 (01:34 +0100)
org.argeo.cms/src/org/argeo/cms/internal/kernel/CmsDeployment.java
org.argeo.cms/src/org/argeo/cms/internal/kernel/NodeHttp.java

index 0a04e0804b2529d0611eff38f723af579a648ef3..917b15a9a94c9baef9290d8d7b11c153eb08b003 100644 (file)
@@ -75,7 +75,7 @@ public class CmsDeployment implements NodeDeployment {
                NodeState nodeState = bc.getService(nodeStateSr);
                cleanState = nodeState.isClean();
 
-               nodeHttp = new NodeHttp();
+               nodeHttp = new NodeHttp(cleanState);
                dataModels = new DataModels(bc);
                initTrackers();
        }
index 9d7deefb57200fd29b86d43bce0c4e3ff42138f5..7df6a494b8062695d5c0c6b83fbc2067a51a832b 100644 (file)
@@ -45,8 +45,10 @@ public class NodeHttp implements KernelConstants {
        private final ServiceTracker<HttpService, HttpService> httpServiceTracker;
 
        private static String httpRealm = "Argeo";
+       private final boolean cleanState;
 
-       public NodeHttp() {
+       public NodeHttp(boolean cleanState) {
+               this.cleanState = cleanState;
                httpServiceTracker = new PrepareHttpStc();
                // httpServiceTracker.open();
                KernelUtils.asyncOpen(httpServiceTracker);
@@ -244,7 +246,8 @@ public class NodeHttp implements KernelConstants {
                                throw new CmsException("An http service is already configured");
                        repositories = new RepositoriesStc(bc, httpService);
                        // repositories.open();
-                       KernelUtils.asyncOpen(repositories);
+                       if (cleanState)
+                               KernelUtils.asyncOpen(repositories);
                        log.info(httpPortsMsg(httpPort, httpsPort));
                        // httpAvailable = true;
                        // checkReadiness();