in src/main/java/org/apache/sling/models/impl/AdapterImplementations.java [158:175]
public void remove(String adapterTypeName, String implTypeName) {
String key = adapterTypeName;
if (StringUtils.equals(adapterTypeName, implTypeName)) {
modelClasses.remove(key);
}
else {
// although we already use a ConcurrentMap synchronize explicitly because we apply non-atomic operations on it
synchronized (adapterImplementations) {
ConcurrentNavigableMap<String,ModelClass<?>> implementations = adapterImplementations.get(key);
if (implementations != null) {
implementations.remove(implTypeName);
if (implementations.isEmpty()) {
adapterImplementations.remove(key);
}
}
}
}
}