private synchronized void rebuildObjectInstanceMap() {
        LOGGER.debug("Rebuilding object instance map");
        final Map<Class<?>, AbstractConfig> newInstanceMap = new HashMap<>();
        final AbstractConfig newConfigTree = rebuildObjectInstance(AppConfig.ROOT_PROPERTY_PATH, newInstanceMap);

        // Decorate all the config instances with their property path information, so they know what their own
        // path is.
        PropertyPathDecorator.decoratePaths(newConfigTree, AppConfig.ROOT_PROPERTY_PATH);

        // Now swap out the current map with the new one
        this.configInstanceMap = newInstanceMap;

        updateXmlSecureProcessing();

        LOGGER.debug("Completed rebuild of object instance map");
    }
Creates a config object from a map of property paths to values. If a value is not supplied for
a property then the compile time default will be used.
stroom-config/stroom-config-global-impl/src/main/java/stroom/config/global/impl/ConfigMapper.java