projects
/
lgpl
/
argeo-commons.git
/ blobdiff
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix issue with CMS deployment marked twice as available when state has
[lgpl/argeo-commons.git]
/
org.argeo.cms
/
src
/
org
/
argeo
/
cms
/
internal
/
kernel
/
CmsDeployment.java
diff --git
a/org.argeo.cms/src/org/argeo/cms/internal/kernel/CmsDeployment.java
b/org.argeo.cms/src/org/argeo/cms/internal/kernel/CmsDeployment.java
index 0711be2e885674dc4a4cb9fdb05e20720e7cdcfd..30d283c580583ed090df96b2694ad093bd414b89 100644
(file)
--- a/
org.argeo.cms/src/org/argeo/cms/internal/kernel/CmsDeployment.java
+++ b/
org.argeo.cms/src/org/argeo/cms/internal/kernel/CmsDeployment.java
@@
-197,7
+197,13
@@
public class CmsDeployment implements NodeDeployment {
}
}
}
}
- private void checkReadiness() {
+ /**
+ * Checks whether the deployment is available according to expectations, and
+ * mark it as available.
+ */
+ private synchronized void checkReadiness() {
+ if (isAvailable())
+ return;
if (nodeAvailable && userAdminAvailable && (httpExpected ? httpAvailable : true)) {
String data = KernelUtils.getFrameworkProp(KernelUtils.OSGI_INSTANCE_AREA);
String state = KernelUtils.getFrameworkProp(KernelUtils.OSGI_CONFIGURATION_AREA);
if (nodeAvailable && userAdminAvailable && (httpExpected ? httpAvailable : true)) {
String data = KernelUtils.getFrameworkProp(KernelUtils.OSGI_INSTANCE_AREA);
String state = KernelUtils.getFrameworkProp(KernelUtils.OSGI_CONFIGURATION_AREA);
@@
-369,10
+375,14
@@
public class CmsDeployment implements NodeDeployment {
}
@Override
}
@Override
- public Long getAvailableSince() {
+ public
synchronized
Long getAvailableSince() {
return availableSince;
}
return availableSince;
}
+ public synchronized boolean isAvailable() {
+ return availableSince != null;
+ }
+
private class RepositoryContextStc extends ServiceTracker<RepositoryContext, RepositoryContext> {
public RepositoryContextStc() {
private class RepositoryContextStc extends ServiceTracker<RepositoryContext, RepositoryContext> {
public RepositoryContextStc() {