diff options
| author | Kali Kaneko <kali@leap.se> | 2014-02-05 12:37:50 -0400 | 
|---|---|---|
| committer | Kali Kaneko <kali@leap.se> | 2014-02-05 14:01:41 -0400 | 
| commit | 012d47df4e9c6ab7d8d1cd315aa9511a670ece00 (patch) | |
| tree | 9857f09e447571487f42a36ff39870835ce7985e | |
| parent | f1c9711c4d77aa514798709687540fcb8da82e05 (diff) | |
fix memoized call returning always None
| -rw-r--r-- | mail/src/leap/mail/imap/messageparts.py | 17 | 
1 files changed, 15 insertions, 2 deletions
| diff --git a/mail/src/leap/mail/imap/messageparts.py b/mail/src/leap/mail/imap/messageparts.py index b07681b..2d9b3a2 100644 --- a/mail/src/leap/mail/imap/messageparts.py +++ b/mail/src/leap/mail/imap/messageparts.py @@ -397,7 +397,9 @@ class MessagePart(object):                  logger.warning("Could not find phash for this subpart!")                  payload = ""              else: -                payload = self._get_payload_from_document(phash) +                payload = self._get_payload_from_document_memoized(phash) +                if payload is None: +                    payload = self._get_payload_from_document(phash)          else:              logger.warning("Message with no part_map!") @@ -424,13 +426,24 @@ class MessagePart(object):      # TODO should memory-bound this memoize!!!      @memoized_method +    def _get_payload_from_document_memoized(self, phash): +        """ +        Memoized method call around the regular method, to be able +        to call the non-memoized method in case we got a None. + +        :param phash: the payload hash to retrieve by. +        :type phash: str or unicode +        :rtype: str or unicode or None +        """ +        return self._get_payload_from_document(phash) +      def _get_payload_from_document(self, phash):          """          Return the message payload from the content document.          :param phash: the payload hash to retrieve by.          :type phash: str or unicode -        :rtype: str or unicode +        :rtype: str or unicode or None          """          cdocs = self._soledad.get_from_index(              fields.TYPE_P_HASH_IDX, | 
