Lowest level shard splitting code needs to somehow use the router for the collection.
I created SOLR-4797 for the same problem.
Actually, it's related but different.
This is about the low level index splitting not using the router - hence anything with a "!" will hash incorrectly (using the default compositeId router) and we'll put it in the wrong split.
Draft patch that passes down the router and uses it for hash based routers.
Thanks Yonik. I changed the ShardSplitTest to add some docs with composite ids as part of SOLR-4797 so I'm marking this issue as fixed.
[lucene_solr_4_3 commit] shalin
SOLR-4798: use correct router during index splitting
Bulk close after 4.3.1 release