}
final SourceValidity[] validities = this.response.getValidityObjects();
boolean valid = true;
final ExpiresValidity expiresValidity = (ExpiresValidity) validities[0];
final SourceValidity sourceValidity = validities[1];
if (expiresValidity.isValid() != SourceValidity.VALID) {
int validity = sourceValidity != null? sourceValidity.isValid() : SourceValidity.INVALID;
if (validity == SourceValidity.INVALID ||
validity == SourceValidity.UNKNOWN &&
sourceValidity.isValid(source.getValidity()) != SourceValidity.VALID) {
if (getLogger().isDebugEnabled()) {
getLogger().debug("Response expired, invalid for " + getSourceURI());
}
valid = false;
} else {
if (getLogger().isDebugEnabled()) {
getLogger().debug("Response expired, still valid for " + getSourceURI());
}
// set new expiration period
validities[0] = new ExpiresValidity(getExpiration());
}
} else {
if (getLogger().isDebugEnabled()) {
getLogger().debug("Response not expired for " + getSourceURI());
}