Issue2696
Created on 2018-07-06.03:02:40 by jaraco, last changed 2018-07-06.03:05:22 by jaraco.
| Messages | |||
|---|---|---|---|
| msg12043 (view) | Author: Jason R. Coombs (jaraco) | Date: 2018-07-06.03:02:39 | |
On CPython, invoking open(None) results in a Python Exception (TypeError). On jython, it crashes with a Java exception:
>>> open(None)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
java.lang.ClassCastException: org.python.core.PyNone cannot be cast to org.python.core.PyString
at org.python.core.PyFile.file___init__(PyFile.java:173)
at org.python.core.PyFile$exposed___new__.createOfType(Unknown Source)
at org.python.core.PyOverridableNew.new_impl(PyOverridableNew.java:12)
at org.python.core.PyType.invokeNew(PyType.java:583)
at org.python.core.PyType.type___call__(PyType.java:1815)
at org.python.core.PyType.__call__(PyType.java:1805)
at org.python.core.OpenFunction.__call__(__builtin__.java:1725)
at org.python.core.PyObject.__call__(PyObject.java:480)
at org.python.core.PyObject.__call__(PyObject.java:484)
at org.python.pycode._pyx4.f$0(<stdin>:1)
at org.python.pycode._pyx4.call_function(<stdin>)
at org.python.core.PyTableCode.call(PyTableCode.java:171)
at org.python.core.PyCode.call(PyCode.java:18)
at org.python.core.Py.runCode(Py.java:1614)
at org.python.core.Py.exec(Py.java:1658)
at org.python.util.PythonInterpreter.exec(PythonInterpreter.java:276)
at org.python.util.InteractiveInterpreter.runcode(InteractiveInterpreter.java:131)
at org.python.util.InteractiveInterpreter.runsource(InteractiveInterpreter.java:116)
at org.python.util.InteractiveInterpreter.runsource(InteractiveInterpreter.java:62)
at org.python.util.InteractiveConsole.push(InteractiveConsole.java:187)
at org.python.util.InteractiveConsole._interact(InteractiveConsole.java:168)
at org.python.util.InteractiveConsole.interact(InteractiveConsole.java:126)
at org.python.util.jython.run(jython.java:419)
at org.python.util.jython.main(jython.java:142)
java.lang.ClassCastException: java.lang.ClassCastException: org.python.core.PyNone cannot be cast to org.python.core.PyString
As a result, [code like this](https://github.com/jaraco/rwt/blob/0ef1080da43827787846f32c698fe7286d6a7613/rwt/scripts.py#L50-L54) fails to catch the exception.
Perhaps that's by design and the offending code should simply catch BaseException instead. Probably better would be for Jython to raise the same TypeError.
|
|||
| msg12044 (view) | Author: Jason R. Coombs (jaraco) | Date: 2018-07-06.03:05:22 | |
I note that catching BaseException also has no effect. I do observe that using `io.open` has consistent behavior across Pythons. |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2018-07-06 03:05:22 | jaraco | set | messages: + msg12044 |
| 2018-07-06 03:02:41 | jaraco | create | |
Supported by Python Software Foundation,
Powered by Roundup