we should review the other uses of the same code-dup'ed function in IndexSchema and ensure there are not similar bugs
The code-dup'ed function is in FieldType, not IndexSchema, and right now it's used to convert fully qualified class names of analyzers, and analysis components, to short name "solr.<SimpleClassName>".
Looking at SolrResourceLoader.findClass(), where analysis component references of the form "solr.<SimpleClassName>" are converted to Class references, I see that this is inappropriate for analyzer classes, since Lucene SPI doesn't cover them. I'll stop shortening analyzer classnames.
I looked up the currently defined analysis factories in trunk, and all of them are under org.apache.lucene.analysis.** and org.apache.solr.analysis.**. Lucene analysis component factories are loaded via SPI, and Solr analysis factories are discovered by iteratively attempting Class.forName() using a fixed set of package prefixes, including "org.apache.solr.analysis.".
I'll change the acceptable prefixes to "org.apache.lucene.analysis." and "org.apache.solr.analysis.".
Since SPI isn't used for Solr factories, I'll change the method name from normalizeSPIname() to getShortName(), since "shortname"/"short name" seems to be what "solr.<SimpleClassName>" instances are called. I would change SimilarityFactory.normalizeName() to getShortName() too, but I see it's only called the one time, so I'll inline it and get rid of the method.
Patch coming shortly.