in src/main/java/org/apache/sling/resourceresolver/impl/mapping/MapEntries.java [578:617]
private boolean doUpdateAlias(final Resource resource) {
final Resource containingResource;
if (JCR_CONTENT.equals(resource.getName())) {
containingResource = resource.getParent();
} else {
containingResource = resource;
}
if ( containingResource != null ) {
final String containingResourceName = containingResource.getName();
final String parentPath = ResourceUtil.getParent(containingResource.getPath());
final Map<String, String> aliasMapEntry = parentPath == null ? null : aliasMap.get(parentPath);
if (aliasMapEntry != null) {
for (Iterator<Map.Entry<String, String>> iterator = aliasMapEntry.entrySet().iterator(); iterator.hasNext(); ) {
final Map.Entry<String, String> entry = iterator.next();
if (containingResourceName.equals(entry.getValue())){
iterator.remove();
}
}
}
if (aliasMapEntry != null && aliasMapEntry.isEmpty()) {
this.aliasMap.remove(parentPath);
}
boolean changed = aliasMapEntry != null;
if ( containingResource.getValueMap().containsKey(ResourceResolverImpl.PROP_ALIAS) ) {
changed |= doAddAlias(containingResource);
}
final Resource child = containingResource.getChild(JCR_CONTENT);
if ( child != null && child.getValueMap().containsKey(ResourceResolverImpl.PROP_ALIAS) ) {
changed |= doAddAlias(child);
}
return changed;
}
return false;
}