diff --git a/utils/src/com/cloud/utils/component/ComponentLocator.java b/utils/src/com/cloud/utils/component/ComponentLocator.java index 7f7abc24f69..fe7b89f18ef 100755 --- a/utils/src/com/cloud/utils/component/ComponentLocator.java +++ b/utils/src/com/cloud/utils/component/ComponentLocator.java @@ -113,17 +113,18 @@ public class ComponentLocator implements ComponentLocatorMBean { try { SAXParserFactory spfactory = SAXParserFactory.newInstance(); SAXParser saxParser = spfactory.newSAXParser(); + _daoMap = new LinkedHashMap>>(); + _managerMap = new LinkedHashMap>(); + _adapterMap = new HashMap>(); File file = PropertiesUtil.findConfigFile(filename); if (file == null) { - throw new CloudRuntimeException("Unable to find " + filename); + return null; } s_logger.info("Config file found at " + file.getAbsolutePath() + ". Configuring " + _serverName); XmlHandler handler = new XmlHandler(_serverName); saxParser.parse(file, handler); - _daoMap = new LinkedHashMap>>(); - _managerMap = new LinkedHashMap>(); - _adapterMap = new HashMap>(); + if (handler.parent != null) { String[] tokens = handler.parent.split(":"); String parentFile = filename; @@ -173,6 +174,10 @@ public class ComponentLocator implements ComponentLocatorMBean { protected void parse(String filename) { Pair parseResults = parse2(filename); + if (parseResults == null) { + s_logger.info("Skipping configuration using components.xml"); + return; + } XmlHandler handler = parseResults.first(); ComponentLibrary library = parseResults.second();