* @throws MetadataProviderException thrown if there is a problem unmarshalling or filtering the new metadata
*/
protected void processNewMetadata(String metadataIdentifier, DateTime refreshStart, byte[] metadataBytes)
throws MetadataProviderException {
log.debug("Unmarshalling metadata from '{}'", metadataIdentifier);
XMLObject metadata = unmarshallMetadata(metadataBytes);
if (!isValid(metadata)) {
processPreExpiredMetadata(metadataIdentifier, refreshStart, metadataBytes, metadata);
} else {
processNonExpiredMetadata(metadataIdentifier, refreshStart, metadataBytes, metadata);