From 22f3ea71286680b4495b8e1e0e36af1800190049 Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Wed, 21 Feb 2018 11:50:24 +0100 Subject: [PATCH] Make data models management more robust --- .../src/org/argeo/cms/internal/kernel/DataModels.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/org.argeo.cms/src/org/argeo/cms/internal/kernel/DataModels.java b/org.argeo.cms/src/org/argeo/cms/internal/kernel/DataModels.java index 5f5b95405..da6328163 100644 --- a/org.argeo.cms/src/org/argeo/cms/internal/kernel/DataModels.java +++ b/org.argeo.cms/src/org/argeo/cms/internal/kernel/DataModels.java @@ -8,6 +8,8 @@ import java.util.List; import java.util.Map; import java.util.TreeMap; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.argeo.cms.CmsException; import org.argeo.node.DataModelNamespace; import org.osgi.framework.Bundle; @@ -19,6 +21,8 @@ import org.osgi.framework.wiring.BundleWire; import org.osgi.framework.wiring.BundleWiring; class DataModels implements BundleListener { + private final static Log log = LogFactory.getLog(DataModels.class); + private Map dataModels = new TreeMap<>(); public DataModels(BundleContext bc) { @@ -56,6 +60,11 @@ class DataModels implements BundleListener { protected void processBundle(Bundle bundle) { BundleWiring wiring = bundle.adapt(BundleWiring.class); + if (wiring == null) { + log.warn("Bundle " + bundle.getSymbolicName() + " #" + bundle.getBundleId() + " (" + bundle.getLocation() + + ") cannot be adapted to a wiring"); + return; + } List providedDataModels = wiring.getCapabilities(CMS_DATA_MODEL_NAMESPACE); if (providedDataModels.size() == 0) return; -- 2.30.2