RFR: 8231179: Investigate why tools/javac/options/BCPOrSystemNotSpecified.java fails on Window [v4]

Guoxiong Li github.com+13688759+lgxbslgx at openjdk.java.net
Thu Apr 15 03:10:46 UTC 2021


On Thu, 15 Apr 2021 01:50:16 GMT, Guoxiong Li <github.com+13688759+lgxbslgx at openjdk.org> wrote:

>> Hi all,
>> 
>> The statement `String sourcePath = file.getName();` in method `prepareBCP(Path target)` would use `DirectoryFileObject::getName` which is shown below.
>> 
>> 
>> @Override @DefinedBy(Api.COMPILER)
>> public String getName() {
>>     return relativePath.resolveAgainst(userPackageRootDir).toString();  // <-----------------
>> }
>> 
>> 
>> And the `DirectoryFileObject::getName` would use `RelativePath::resolveAgainst` which is shown below
>> 
>> 
>> public Path resolveAgainst(Path directory) throws /*unchecked*/ InvalidPathException {
>>     String sep = directory.getFileSystem().getSeparator();  // <---------------------
>>     return directory.resolve(path.replace("/", sep));
>> }
>> 
>> 
>> We can see that `RelativePath::resolveAgainst` use file system separator instead of operating system separator. In method `prepareBCP`, the file system should be JRT file system, but we don't need to know actually which file system to be used. We only need to use the same file system separator so that the test can run as expected.
>> 
>> This patch fixes the test by using the file system separator instead of operating system separator.
>> 
>> Thank you for taking the time to review.
>> 
>> Best Regards.
>
> Guoxiong Li has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains five additional commits since the last revision:
> 
>  - Merge branch 'master' into JDK-8231179
>  - Merge branch 'master' into JDK-8231179
>  - Use StandardJavaFileManager::asPath
>  - Modify copyright
>  - 8231179: Investigate why tools/javac/options/BCPOrSystemNotSpecified.java fails on Window

I merged the code of the master branch just now to see whether the `tools/javac/options/BCPOrSystemNotSpecified.java` passes the `Pre-submit test`. If so, maybe it is time for us to push this patch.

-------------

PR: https://git.openjdk.java.net/jdk/pull/2004


More information about the compiler-dev mailing list