in src/main/java/org/apache/sling/rewriter/impl/ProcessorManagerImpl.java [322:358]
private synchronized void removeProcessor(final String path) {
final int pos = path.lastIndexOf('/');
final String key = path.substring(pos + 1);
// we have to search the config
final ConfigEntry[] configs = this.processors.get(key);
if ( configs != null ) {
// search path
ConfigEntry found = null;
for(final ConfigEntry current : configs) {
if ( current.path.equals(path) ) {
found = current;
break;
}
}
if ( found != null ) {
this.orderedProcessors.remove(found.config);
if ( configs.length == 1 ) {
this.processors.remove(key);
} else {
if ( found == configs[0] ) {
this.orderedProcessors.add(configs[1].config);
Collections.sort(this.orderedProcessors, new ProcessorConfiguratorComparator());
}
ConfigEntry[] newArray = new ConfigEntry[configs.length - 1];
int index = 0;
for(final ConfigEntry current : configs) {
if ( current != found ) {
newArray[index] = current;
index++;
}
}
this.processors.put(key, newArray);
}
}
}
}