/** {@inheritDoc} */ protected byte[] fetchMetadata() throws MetadataProviderException { try { return super.fetchMetadata(); } catch (MetadataProviderException e) { if (metadataBackupFile.exists()) { log.warn("Problem reading metadata from remote source, processing existing backup file: {}", metadataBackupFile.getAbsolutePath()); try { return DatatypeHelper.fileToByteArray(metadataBackupFile); } catch (IOException ioe) { String errMsg = "Unable to retrieve metadata from backup file " + metadataBackupFile.getAbsolutePath(); log.error(errMsg, ioe); throw new MetadataProviderException(errMsg, ioe); } } else { log.error("Unable to read metadata from remote server and backup does not exist"); throw new MetadataProviderException( "Unable to read metadata from remote server and backup does not exist"); } } }