in src/main/java/org/apache/sling/jcr/maintenance/internal/VersionCleanup.java [174:198]
private void doRun() {
log.info("Running version cleanup");
lastCleanedVersions = 0;
try {
try (final ResourceResolver adminResolver = factory.getServiceResourceResolver(
Collections.singletonMap(ResourceResolverFactory.SUBSERVICE, "sling-versionmgr"))) {
final Resource versionRoot = adminResolver.getResource("/jcr:system/jcr:versionStorage");
final Session session = Optional.ofNullable(versionRoot.getResourceResolver().adaptTo(Session.class))
.orElseThrow(() -> new RepositoryException("Failed to get session"));
for (final Resource folder : versionRoot.getChildren()) {
log.info("Traversing and cleaning: {}", folder.getPath());
if (findVersions(session, folder)) {
break;
}
}
lastFailureMessage = null;
}
} catch (final LoginException le) {
log.error("Failed to run version cleanup, cannot get service user", le);
lastFailureMessage = "Failed to run version cleanup, cannot get service user";
} catch (final RepositoryException re) {
log.error("Failed to run version cleanup", re);
lastFailureMessage = "Failed to run version cleanup";
}
}