Issue229368
Created on 2001-01-19.11:18:25 by bckfnn, last changed 2007-07-25.06:46:30 by cgroves.
Messages | |||
---|---|---|---|
msg265 (view) | Author: Finn Bock (bckfnn) | Date: 2001-01-19.11:18:25 | |
>Traceback (innermost last): > File "FutureSourceSpider.py", line 86, in ? > File "c:\software\jython\Lib\urllib.py", line 68, in urlretrieve > File "c:\software\jython\Lib\urllib.py", line 198, in retrieve > File "c:\software\jython\Lib\urllib.py", line 169, in open > File "c:\software\jython\Lib\urllib.py", line 273, in open_http > File "c:\software\jython\Lib\httplib.py", line 430, in putrequest >AttributeError: __getitem__ > >The line throwing the error in inside an exception handler: > try: > self.send(str) > except socket.error, v: > # trap 'Broken pipe' if we're allowed to automatically >reconnect >>>>> if v[0] != 32 or not self.auto_open: <<<<< > raise > # try one more time (the socket was closed; this will >reopen) > self.send(str) > In CPython, the exception would have been a subclass of Exception, which defines a __getitem__ method. Index 0 would then contain the error number and index 1 an textual description. So the httplib will most likely work on CPython. OTOH, the java exception is just passed back from the jython socket module. This exception can not be indexed as a list, therefore we get the AttributeError: __getitem__. There is also no error number in a java exception. I'm not yet sure what the right long term solution is. Either httplib could test that the exception is a sequence before doing any indexing. Or the socket module could catch the java.net exception and reraise it as a SocketException. |
|||
msg266 (view) | Author: Charlie Groves (cgroves) | Date: 2007-07-25.06:46:30 | |
The new socket module re-raises Java exceptions as Python exceptions, so this is fixed. |
History | |||
---|---|---|---|
Date | User | Action | Args |
2001-01-19 11:18:25 | bckfnn | create |
Supported by Python Software Foundation,
Powered by Roundup