private void expireMembers(Calendar date) throws InternalErrorException, WrongAttributeAssignmentException, AttributeNotExistsException {
List<Member> shouldBeExpired = perun.getSearcherBl().getMembersByExpiration(sess, "<=", date);
for (Member member : shouldBeExpired) {
if (member.getStatus().equals(Status.VALID)) {
try {
perun.getMembersManagerBl().expireMember(sess, member);
log.info("Switching {} to EXPIRE state, due to expiration {}.", member, perun.getAttributesManagerBl().getAttribute(sess, member, "urn:perun:member:attribute-def:def:membershipExpiration").getValue());
} catch (MemberNotValidYetException e) {
log.error("Consistency error while trying to expire member {}, exception {}", member, e);
}
}
}
}