private boolean pastLastModified()

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;
    }