Issue2792
Created on 2019-08-03.06:37:39 by jeff.allen, last changed 2022-06-13.11:39:34 by jeff.allen.
| Messages | |||
|---|---|---|---|
| msg12616 (view) | Author: Jeff Allen (jeff.allen) | Date: 2019-08-03.06:37:38 | |
Observed on Linux (my own job on Travis CI) we see two failures in test_import_jy when running on Java 13 or 14:
[exec] ======================================================================
[exec] FAIL: test_dunder_init (test.test_import_jy.MislabeledImportTestCase)
[exec] ----------------------------------------------------------------------
[exec] Traceback (most recent call last):
[exec] File "/home/travis/build/jeff5/jython/dist/Lib/test/test_import_jy.py", line 65, in test_dunder_init
[exec] self.assertEquals(module_obj.__file__, init)
[exec] AssertionError: '/home/travis/build/jeff5/jython/dunder_init_test/__init__.py' != 'dunder_init_test/__init__.py'
[exec]
[exec] ======================================================================
[exec] FAIL: test_import_star (test.test_import_jy.ImpTestCase)
[exec] ----------------------------------------------------------------------
[exec] Traceback (most recent call last):
[exec] File "/home/travis/build/jeff5/jython/dist/Lib/test/test_import_jy.py", line 177, in test_import_star
[exec] self.assertEquals(0, subprocess.call(
[exec] AssertionError: 0 != 1
[exec]
[exec] ----------------------------------------------------------------------
Before the second of these, we see:
[exec] Traceback (most recent call last):
[exec] File "/home/travis/build/jeff5/jython/dist/Lib/test/import_star_from_java.py", line 4, in <module>
[exec] p = Pattern.compile("foo")
[exec] NameError: name 'Pattern' is not defined
[exec] test_import_star (test.test_import_jy.ImpTestCase) ... FAIL
This suggests the import has failed here:
from java.util.regex import * # Module: java.base
p = Pattern.compile("foo")
I'm pretty sure Pattern is there, so I think this may be the cache playing up again. One line of investigation is that, about Java 13, Oracle note:
Reminder of a change in b24 - A jrt URI can only encode paths to files in /modules tree (JDK-8224946)(https://bugs.openjdk.java.net/browse/JDK-8224946)
A jrt URL is a hierarchical URI with syntax jrt:/[$MODULE[/$PATH]]. When using the jrt file system, a java.net.URI object can be created with the java.nio.file.Path::toUri method to encode a normalized path to a file in the /modules tree. A jrt URL cannot encode a path to a file in the /packages tree. The jrt file system provider has changed in this release so that toUri fails with IOError when it is not possible to encode the file path as a jrt URI. This change may impact tools have been making use of URLs that are not compliant with the syntax. Tools with paths to files in /packages can use the toRealPath() method to obtain the real path (in /modules) before attempting to convert the file path to a URI.
We may as a result be bug-compatible with Java 9 to 12 in the work done on #2362 and #2734. Or it may be something quite different. Or both, as there are 2 failures.
|
|||
| msg13226 (view) | Author: Jeff Allen (jeff.allen) | Date: 2022-06-13.11:39:34 | |
Also https://github.com/jython/jython/issues/105 and believed fixed in updating ASM JARs at https://github.com/jython/jython/commit/7c11f58d7b84b6ae0ea22bed0abc96a72cbd8de6 . |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022-06-13 11:39:34 | jeff.allen | set | status: open -> closed resolution: fixed messages: + msg13226 |
| 2019-08-03 06:37:39 | jeff.allen | create | |
Supported by Python Software Foundation,
Powered by Roundup