Attached patch should get us to a good point to tackle some of the related issues. It updates all code paths (unless i missed one) that put something into SolrConfig.severeErrors so that that code path also explicilty throws the corrisponding exception.
This seems to be working well and is a good base for building up better per-core error reporting in SolrDispatchFilter (because now all the exceptions can be propogated up to CoreContainer and tracked per core)
As is, this patch breaks BadIndexSchemaTest ... and i'm not really sure what the 'right' fix is ... the test explicitly expects a bad schema.xml to be loaded properly, and then looks for 3 errors in SOlrCOnfig.severeErrors – errors are still added to severeErrors befor getting thrown, btu the test still errors out during setUp because the SolrCore can't be inited (because the IndexSchema doesn't finishing initing)
my best suggestion: split the test into three test, each using a differnet config (one per type of error tested) and assert that we get an exception during setUp.