in src/main/java/org/apache/sling/installer/core/impl/PersistentResourceList.java [308:340]
public void transform(final RegisteredResource resource,
final TransformationResult[] result) {
// remove resource from unknown list
this.untransformedResources.remove(resource);
try {
Set<String> entityIds = new HashSet<>();
for(int i=0; i<result.length; i++) {
// check the result
final TransformationResult tr = result[i];
if ( tr == null ) {
logger.warn("Ignoring null result for {}", resource);
continue;
}
if ( tr.getResourceType() != null && tr.getId() == null) {
logger.error("Result for {} contains new resource type {} but no unique id!",
resource, tr.getResourceType());
continue;
}
final RegisteredResourceImpl clone = (RegisteredResourceImpl)((RegisteredResourceImpl)resource).clone(result[i]);
this.checkInstallable(clone);
entityIds.add(clone.getEntityId());
}
for (EntityResourceList group : this.data.values()) {
if (!entityIds.contains(group.getResourceId())) {
if (group.removeInternal(resource.getURL())) {
logger.debug("Removed stale resources from group with entityid: {} because after transforming {} the entityids have changed.", group.getResourceId(), resource);
}
}
}
} catch (final IOException ioe) {
logger.warn("Ignoring resource. Error during processing of " + resource, ioe);
}
}