LOG.debug("Initializing broker " + hashCode());
	public NativeBroker(BrokerPool pool, Configuration config) throws EXistException {		super(pool, config);		if ((dataDir = (String) config.getProperty("db-connection.data-dir")) == null)			dataDir = "data";		if ((pageSize = config.getInteger("db-connection.page-size")) < 0)			pageSize = 4096;		if ((defaultIndexDepth = config.getInteger("indexer.index-depth")) < 0)			defaultIndexDepth = 1;		if ((memMinFree = config.getInteger("db-connection.min_free_memory")) < 0)			memMinFree = 5000000;				Paged.setPageSize(pageSize);		try {			createIndexFiles();			if ((domDb = (DOMFile) config.getProperty("db-connection.dom")) == null) {				domDb =					new DOMFile(pool, new File(dataDir + File.separatorChar + DOM_DBX),						pool.getCacheManager());				if (!domDb.exists()) {					LOG.info("creating dom.dbx");					domDb.create();				} else					domDb.open();				config.setProperty("db-connection.dom", domDb);				if (!readOnly)					readOnly = domDb.isReadOnly();			}			// Initialize collections storage            			if ((collectionsDb =				(CollectionStore) config.getProperty("db-connection.collections"))				== null) {				collectionsDb =					new CollectionStore(pool, new File(dataDir + File.separatorChar + COLLECTIONS_DBX),                            pool.getCacheManager());				if (!collectionsDb.exists()) {					LOG.info("creating collections.dbx");					collectionsDb.create();				} else					collectionsDb.open();				config.setProperty("db-connection.collections", collectionsDb);				if (!readOnly)					readOnly = collectionsDb.isReadOnly();            }            			if (readOnly)				LOG.info("database runs in read-only mode");						idxConf = (IndexSpec) config.getProperty("indexer.config");						xmlSerializer = new NativeSerializer(this, config);			user = SecurityManager.SYSTEM_USER;		} catch (DBException e) {			LOG.debug("failed to initialize database: " + e.getMessage(), e);			throw new EXistException(e);		}	}