Issue2397
Created on 2015-09-13.08:39:36 by jeff.allen, last changed 2015-10-26.20:42:02 by zyasoft.
| Messages | |||
|---|---|---|---|
| msg10256 (view) | Author: Jeff Allen (jeff.allen) | Date: 2015-09-13.08:39:35 | |
Edited for brevity:
> jython -m test.test_os_jy
...
test_env (__main__.UnicodeTestCase) ... Exception in thread "main" java.lang.IllegalArgumentException: Cannot create PyString with non-byte value
at org.python.core.PyString.<init>(PyString.java:64)
at org.python.core.PyString.<init>(PyString.java:70)
at org.python.core.packagecache.PathPackageManager.addDirectory(PathPackageManager.java:201)
at org.python.core.packagecache.PathPackageManager.addClassPath(PathPackageManager.java:232)
at org.python.core.packagecache.SysPackageManager.findAllPackages(SysPackageManager.java:96)
at org.python.core.packagecache.SysPackageManager.<init>(SysPackageManager.java:39)
at org.python.core.PySystemState.initPackages(PySystemState.java:1122)
at org.python.core.PySystemState.doInitialize(PySystemState.java:1052)
at org.python.core.PySystemState.initialize(PySystemState.java:969)
at org.python.core.PySystemState.initialize(PySystemState.java:925)
at org.python.core.PySystemState.initialize(PySystemState.java:920)
at org.python.util.jython.run(jython.java:263)
at org.python.util.jython.main(jython.java:142)
FAIL
test_getcwd (__main__.UnicodeTestCase) ... Exception in thread "main" java.lang.IllegalArgumentException: Cannot create PyString with non-byte value
... identical Java stack dump
FAIL
...
======================================================================
FAIL: test_env (__main__.UnicodeTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
File "C:\jython\2.7.1b1\Lib\test\test_os_jy.py", line 208, in test_env
self.assertEqual(p.stdout.read().decode("utf-8"), u"首页")
AssertionError: u'' != u'\u9996\u9875'
+ \u9996\u9875
======================================================================
FAIL: test_getcwd (__main__.UnicodeTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
File "C:\jython\2.7.1b1\Lib\test\test_os_jy.py", line 216, in test_getcwd
self.assertEqual(p.stdout.read().decode("utf-8"), temp_cwd)
AssertionError: u'' != u'C:\\Users\\Jeff\\Documents\\Jython\\271b1\\tempcwd-\u4e2d\u6587'
+ C:\Users\Jeff\Documents\Jython\271b1\tempcwd-\u4e2d\u6587
----------------------------------------------------------------------
Ran 24 tests in 8.331s
FAILED (failures=2, skipped=11)
...
I'm fairly sure the Java stack dump is actually from the sub-process invoked in the tests. I think it is connected to non-ascii values in a path #2293 and #2356.
A search through the commits locates the first one where this occurs as last big change to the launcher (585cc365d4bd : views badly in the web interface because of large binary content).
|
|||
| msg10257 (view) | Author: Jeff Allen (jeff.allen) | Date: 2015-09-13.16:37:53 | |
The problem occurs in processing Java String file or directory names into PyString path elements. I'm pretty sure CPython 2 would take a byte-smuggling approach to the problem of non-ascii filenames. As long as it does not lead to worse trouble downstream, I think I prefer liberal use of Py.newStringOrUnicode as in this: https://hg.python.org/jython/rev/ea036792f304 . |
|||
| msg10351 (view) | Author: Jeff Allen (jeff.allen) | Date: 2015-10-11.16:59:43 | |
I claim this is fixed in https://hg.python.org/jython/rev/b6180b5dc4c6. |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2015-10-26 20:42:02 | zyasoft | set | status: pending -> closed |
| 2015-10-11 16:59:43 | jeff.allen | set | status: open -> pending messages: + msg10351 |
| 2015-09-13 16:37:53 | jeff.allen | set | assignee: jeff.allen messages: + msg10257 |
| 2015-09-13 08:39:36 | jeff.allen | create | |
Supported by Python Software Foundation,
Powered by Roundup