'Refresh the contents of the multistore.
The multistore must be locked when this is called.
Raises:
NewerCredentialStoreError: Raised when a newer client has written the
store.'

def _refresh_data_cache(self):

    self._data = {}
    try:
        raw_data = self._locked_json_read()
    except Exception:
        logger.warn('Credential    data    store    could    not    be    loaded.    Will    ignore    and    overwrite.')
        return
    version = 0
    try:
        version = raw_data['file_version']
    except Exception:
        logger.warn('Missing    version    for    credential    data    store.    It    may    be    corrupt    or    an    old    version.    Overwriting.')
    if (version > 1):
        raise NewerCredentialStoreError(('Credential    file    has    file_version    of    %d.    Only    file_version    of    1    is    supported.' % version))
    credentials = []
    try:
        credentials = raw_data['data']
    except (TypeError, KeyError):
        pass
    for cred_entry in credentials:
        try:
            (key, credential) = self._decode_credential_from_json(cred_entry)
            self._data[key] = credential
        except:
            logger.info('Error    decoding    credential,    skipping', exc_info=True)
