code: @Override
      public Instant getLastModifiedDate() {
  
          final Instant createdDate = getCreatedDate();
          try {
              final long created = createdDate == null ? NO_TIME : createdDate.toEpochMilli();
              if (hasProperty(FEDORA_LASTMODIFIED)) {
                  return ofEpochMilli(getTimestamp(FEDORA_LASTMODIFIED, created));
              } else if (hasProperty(JCR_LASTMODIFIED)) {
                  return ofEpochMilli(getTimestamp(JCR_LASTMODIFIED, created));
              }
          } catch (final PathNotFoundException e) {
              throw new PathNotFoundRuntimeException(e);
          } catch (final RepositoryException e) {
              throw new RepositoryRuntimeException(e);
          }
          LOGGER.debug("Could not get last modified date property for node {}", node);
  
          if (createdDate != null) {
              LOGGER.trace("Using created date for last modified date for node {}", node);
              return createdDate;
          }
  
          return null;
      }
docs: This method gets the last modified date for this FedoraResource.  Because
  the last modified date is managed by fcrepo (not ModeShape) while the created
  date *is* sometimes managed by ModeShape in the current implementation it's
  possible that the last modified date will be before the created date.  Instead
  of making a second update to correct the modified date, in cases where the modified
  date is ealier than the created date, this class presents the created date instead.
  
  Any method that exposes the last modified date must maintain this illusion so
  that that external callers are presented with a sensible and consistent
  representation of this resource.
  @return the last modified Instant (or the created Instant if it was after the last
  modified date)