New submission from Attila Nagy <b...@fsn.hu>: When talking to an Apache XML-RPC library based application via python 2.6.5 xmlrpclib, I get this exception: Traceback (most recent call last): File "prb.py", line 4, in <module> proxy.catv.getEndpointIdByIp('1.1.1.1') File "/tmp/Python-2.6.5/Lib/xmlrpclib.py", line 1199, in __call__ return self.__send(self.__name, args) File "/tmp/Python-2.6.5/Lib/xmlrpclib.py", line 1491, in __request verbose=self.__verbose File "/tmp/Python-2.6.5/Lib/xmlrpclib.py", line 1253, in request return self._parse_response(h.getfile(), sock) File "/tmp/Python-2.6.5/Lib/xmlrpclib.py", line 1389, in _parse_response p.feed(response) File "/tmp/Python-2.6.5/Lib/xmlrpclib.py", line 601, in feed self._parser.Parse(data, 0) File "/tmp/Python-2.6.5/Lib/xmlrpclib.py", line 868, in end return f(self, join(self._data, "")) File "/tmp/Python-2.6.5/Lib/xmlrpclib.py", line 935, in end_struct dict[_stringify(items[i])] = items[i+1] IndexError: list index out of range
The exception is caused by the XML response, which includes a value with "ex:i8" type. According to this: http://ws.apache.org/xmlrpc/types.html, there are a lot more types, which are not understood by python's xmlrpclib. It's easy to fix the above by adding "ex:i8" to the list of end_int dispatcher: def end_int(self, data): self.append(int(data)) self._value = 0 dispatch["i4"] = end_int dispatch["i8"] = end_int dispatch["ex:i8"] = end_int dispatch["int"] = end_int This makes the error disappear (and the program to work). Of course, it would be nice to support all other types as well (in both directions). ---------- components: XML messages: 106322 nosy: bra priority: normal severity: normal status: open title: xmlrpclib compatibility issues with Apache XML-RPC library type: behavior versions: Python 2.6 _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue8792> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com