rendered paste bodyIndex: deluge/ui/client.py===================================================================--- deluge/ui/client.py (revision 2816)+++ deluge/ui/client.py (working copy)@@ -83,22 +83,30 @@ def do_multicall(self, block=False): if len(self._callbacks) == 0: return True++ def invoke_callbacks(callbacks, value):+ try:+ for callback in callbacks:+ if block == False:+ gobject.idle_add(callback, value)+ else:+ callback(value)+ except:+ pass if self._multi is not None and self._core is not None: try: try: for i, ret in enumerate(self._multi()):- try:- for callback in self._callbacks[i]:- if block == False:- gobject.idle_add(callback, ret)- else:- callback(ret)- except:- pass+ invoke_callbacks(self._callbacks[i], ret) except socket.error, e: log.warning("Could not contact daemon: %s", e) self.set_core_uri(None)+ except deluge.xmlrpclib.Fault, e:+ try:+ deluge.error.from_xmlrpc_fault(e)+ except deluge.error.DelugeError, e:+ invoke_callbacks(self._callbacks[i], e) finally: self._callbacks = []