in core/src/main/java/org/apache/sling/cms/core/internal/listeners/AutoVersioningListener.java [111:143]
private boolean pastLastModified(Resource pageResource) {
try {
Page page = pageResource.adaptTo(Page.class);
if (page != null && page.isPublished()) {
Version latestVersion = Optional.ofNullable(pageResource.adaptTo(VersionInfo.class))
.map(VersionInfo::getVersions).map(vs -> !vs.isEmpty() ? vs.get(vs.size() - 1) : null)
.orElse(null);
if (latestVersion != null) {
if (latestVersion.hasProperty("jcr:frozenNode/jcr:content/jcr:lastModified")) {
Calendar lMod = latestVersion.getProperty("jcr:frozenNode/jcr:content/jcr:lastModified")
.getDate();
Calendar co = Calendar.getInstance();
co.add(Calendar.SECOND, cutoff * -1);
if (lMod.before(co)) {
log.trace("Page should be versioned");
return true;
} else {
log.trace("Page should not be versioned");
}
} else {
log.trace("No last modified found for version");
}
} else {
return true;
}
} else {
log.trace("Page is not published");
}
} catch (RepositoryException e) {
log.error("Failed to check if modified date outside cutoff", e);
}
return false;
}