: Maybe moving the resourceLoader.inform(infoRegistry) call PRIOR to : resourceLoader.inform( this ) *or* AFTER latch.countDown() would solve : this problem?
If this really is the problem, then a more general purpose solution to future proof us against similar problems down the road would probably be to get rid of the current "if (config.jmxConfig.enabled)" logic for initializing SolrCore.infoRegistry, and instead us something like... infoRegistry = new ConcurrentHashMap<String, SolrInfoMBean>(); ... // do all initialization, add things to infoRegistry as needed ... // done with all initilation, core and all MBeans are fully functional if (config.jmxConfig.enabled) { Map tmp = infoRegistry; infoRegistry = new JmxMonitoredMap<String, SolrInfoMBean>(name, config.jmxConfig); infoRegistry.putAll(tmp); } else { log.info("JMX monitoring not detected for core: " + name); } ...that way we wouldn't have to worry about any other type of resource contention that might happen from the JMX monitor wanting ot get info from the MBeans as soon as they are added to the registry. -Hoss