Index: lucene/analysis/common/src/java/org/apache/lucene/analysis/util/AnalysisSPILoader.java =================================================================== --- lucene/analysis/common/src/java/org/apache/lucene/analysis/util/AnalysisSPILoader.java (revision 1449874) +++ lucene/analysis/common/src/java/org/apache/lucene/analysis/util/AnalysisSPILoader.java (working copy) @@ -66,7 +66,7 @@ *

This method is expensive and should only be called for discovery * of new service providers on the given classpath/classloader! */ - public void reload(ClassLoader classloader) { + public synchronized void reload(ClassLoader classloader) { final SPIClassIterator loader = SPIClassIterator.get(clazz, classloader); final LinkedHashMap> services = new LinkedHashMap>(); while (loader.hasNext()) { Index: lucene/core/src/java/org/apache/lucene/util/NamedSPILoader.java =================================================================== --- lucene/core/src/java/org/apache/lucene/util/NamedSPILoader.java (revision 1449874) +++ lucene/core/src/java/org/apache/lucene/util/NamedSPILoader.java (working copy) @@ -53,7 +53,7 @@ *

This method is expensive and should only be called for discovery * of new service providers on the given classpath/classloader! */ - public void reload(ClassLoader classloader) { + public synchronized void reload(ClassLoader classloader) { final LinkedHashMap services = new LinkedHashMap(this.services); final SPIClassIterator loader = SPIClassIterator.get(clazz, classloader); while (loader.hasNext()) {