Description of problem: During an interactive ccm load of ccm-core, if waf.search.indexer is set to intermedia, then validation will fail. It outputs the following stack trace. Exception in thread "main" java.lang.IllegalArgumentException: no such context: class com.arsdigita.runtime.RuntimeConfig at com.arsdigita.packaging.ConfigRegistry.getStorage(ConfigRegistry.java:219) at com.arsdigita.packaging.ConfigRegistry.load(ConfigRegistry.java:289) at com.arsdigita.packaging.ConfigRegistry.load(ConfigRegistry.java:260) at com.arsdigita.runtime.AbstractConfig.load(AbstractConfig.java:107) at com.arsdigita.runtime.AbstractConfig.load(AbstractConfig.java:131) at com.arsdigita.runtime.AbstractConfig.require(AbstractConfig.java:148) at com.arsdigita.runtime.RuntimeConfig.getConfig(RuntimeConfig.java:49) at com.arsdigita.search.SearchConfig$IndexerParameter.doValidate(SearchConfig.java:292) at com.arsdigita.util.parameter.AbstractParameter.validate(AbstractParameter.java:239) at com.arsdigita.util.parameter.MapParameter.doValidate(MapParameter.java:97) at com.arsdigita.util.parameter.AbstractParameter.validate(AbstractParameter.java:239) at com.arsdigita.util.parameter.AbstractParameterContext.validate(AbstractParameterContext.java:189) at com.arsdigita.packaging.ParameterMap.validate(ParameterMap.java:68) at com.arsdigita.packaging.ParameterEditor.validate(ParameterEditor.java:223) at com.arsdigita.packaging.ParameterEditor.access$600(ParameterEditor.java:16) at com.arsdigita.packaging.ParameterEditor$4.act(ParameterEditor.java:103) at com.arsdigita.packaging.ParameterEditor.edit(ParameterEditor.java:314) at com.arsdigita.packaging.Load.run(Load.java:247) at com.arsdigita.packaging.MasterTool.main(MasterTool.java:100) Version-Release number of selected component (if applicable): How reproducible: Steps to Reproduce: 1. 2. 3. Actual results: Expected results: Additional info:
Looks like it's failing when the validation tries to confirm that the intermedia search is only specified when the database is oracle. This actually works for already-loaded systems, but fails when loading from scratch. As a workaround, you can load the system without setting the search indexer and then later use "ccm set" to set it to intermedia. The failure is in the following line of code: if (Search.INDEXER_INTERMEDIA.equals(value) && DbHelper.getDatabaseFromURL(RuntimeConfig.getConfig().getJDBCURL()) != DbHelper.DB_ORACLE) { Is this call not valid at initial config time (i.e. within interactive "ccm load" config but before the system has gone through the loading steps)?
disabled the validation check for now in 38394 so that we can remove this as a blocker bug. The root of the problem is that the first time that the validation is run the RuntimeConfig context hasn't been loaded yet, so RuntimeConfig.getConfig() fails. Reassinging to Rafi for the proper fix.
resolution depends on parameters work that justin is doing