# HG changeset patch # User Goffi # Date 1482074924 -3600 # Node ID efe31f0881fb2604008f7eca6f9677bdc5053c55 # Parent 522c4c8903f91b9b39f385c7fef569b576d4ec91 core (memory/disco): recover getItems on bridge's discoItems method if an item is empty diff -r 522c4c8903f9 -r efe31f0881fb src/memory/disco.py --- a/src/memory/disco.py Sun Dec 18 10:17:32 2016 +0100 +++ b/src/memory/disco.py Sun Dec 18 16:28:44 2016 +0100 @@ -350,4 +350,11 @@ profile = self.host.memory.getProfileName(profile_key) entity = jid.JID(entity_jid_s) disco_items = yield self.getItems(entity, profile=profile) - defer.returnValue([(item.entity.full(), item.nodeIdentifier or '', item.name or '') for item in disco_items]) + try: + ret = [(item.entity.full(), item.nodeIdentifier or '', item.name or '') for item in disco_items] + except AttributeError: + log.error(u"error while getting items from {entity}, it may result from invalid item(s)".format(entity=entity.full())) + # second try by ignoring empty items + ret = [(item.entity.full(), item.nodeIdentifier or '', item.name or '') for item in disco_items if item.entity] + + defer.returnValue(ret)