def _retrieve_session(self, session_key):
        """
        :type session_key: SessionKey
        :returns: SimpleSession
        """
        session_id = session_key.session_id
        if (session_id is None):
            msg = ("Unable to resolve session ID from SessionKey [{0}]."
                   "Returning null to indicate a session could not be "
                   "found.".format(session_key))
            logger.debug(msg)
            return None

        session = self.session_store.read(session_id)

        if (session is None):
            # session ID was provided, meaning one is expected to be found,
            # but we couldn't find one:
            msg2 = "Could not find session with ID [{0}]".format(session_id)
            raise ValueError(msg2)

        return session
:type session_key: SessionKey
        :returns: SimpleSession