New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
8245956: JavaCompiler still uses File API instead of Path API in a specific case #1553
Conversation
👋 Welcome back lgxbslgx! A progress list of the required criteria for merging this PR into |
Webrevs
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice.
Some minor suggestions inline for your consideration.
@@ -741,13 +741,13 @@ public void close() throws IOException { | |||
@Override @DefinedBy(Api.COMPILER) | |||
public ClassLoader getClassLoader(Location location) { | |||
checkNotModuleOrientedLocation(location); | |||
Iterable<? extends File> path = getLocation(location); | |||
if (path == null) | |||
Collection<? extends Path> paths = getLocationAsPaths(location); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Minor suggestion: the use of the simple name path
or paths
can be confusing in contexts like this, when the name may refer to an instance of java.nio.file.Path
or a collection of such items.
You did good by renaming the variable from path
to paths
. A more explicit name would be to use searchPath
as the name for a series of file system objects.
/* | ||
* @test | ||
* @bug 8245956 | ||
* @summary JavaCompiler still uses files API instead of Path API in a specific case |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I suggest changing files API
to File API
.
I have made the corresponding change in the JBS issue.
List<Path> classPath = new ArrayList<>(); | ||
classPath.add(fsPath); | ||
fileManager.setLocationFromPaths(StandardLocation.CLASS_PATH, classPath); | ||
fileManager.getClassLoader(StandardLocation.CLASS_PATH); // Should not generate any exceptions. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Minor suggestion: add something like a print statement after the getClassLoader
call to verify that the getClassLoader
call terminated normally.
@lgxbslgx This change now passes all automated pre-integration checks. ℹ️ This project also has non-automated pre-integration requirements. Please see the file CONTRIBUTING.md for details. After integration, the commit message for the final commit will be:
You can use pull request commands such as /summary, /contributor and /issue to adjust it as needed. At the time when this comment was updated there had been 199 new commits pushed to the
As there are no conflicts, your changes will automatically be rebased on top of these commits when integrating. If you prefer to avoid this automatic rebasing, please check the documentation for the /integrate command for further details. As you do not have Committer status in this project an existing Committer must agree to sponsor your change. Possible candidates are the reviewers of this PR (@jonathan-gibbons) but any other Committer may sponsor as well. ➡️ To flag this PR as ready for integration with the above commit message, type |
/integrate |
@jonathan-gibbons I revise the code according to your suggestions. Thank you for taking the time to review. |
/sponsor |
@jonathan-gibbons @lgxbslgx Since your change was applied there have been 200 commits pushed to the
Your commit was automatically rebased without conflicts. Pushed as commit 46c9a86. 💡 You may see a message that your pull request was closed with unmerged commits. This can be safely ignored. |
Hi all,
JavacFileManager.getClassLoader
usesgetLocation
which causes exception in some situations.This patch uses
getLocationAsPaths
instead ofgetLocation
to solve it.Thanks you for taking the time to review.
Best Regards.
Progress
Issue
Reviewers
Download
$ git fetch https://git.openjdk.java.net/jdk pull/1553/head:pull/1553
$ git checkout pull/1553