Additional fixes for scheme-based globbing (9.4)#8980
Merged
headius merged 5 commits intojruby:jruby-9.4from Aug 27, 2025
Merged
Additional fixes for scheme-based globbing (9.4)#8980headius merged 5 commits intojruby:jruby-9.4from
headius merged 5 commits intojruby:jruby-9.4from
Conversation
This fixes one issue with the new logic to process globs without scheme. The intent of this code appears to have been to remove the scheme from the path portion, used for fnmatching and character-by- character comparisons. However in that case the scheme must always be prepended when querying the "filesystem", so that URLs and such can always use appropriate logic. The patch here does the following: * Fully remove the scheme from the passed-in path, since the glob_helper logic seems to assume that the path bytes provided will be the schemeless full path. * Prepend the scheme when checking each link in the path, so that appropriate exotic filesystem checks work correctly. This appears to fix the issue in jruby#8973.
This tests uri:classpath: and file: URIs in Dir.glob against an on-filesystem path. See jruby#8973.
The use of "magic" logic under macOS also appears to break the jar:file scheme. This patch fixes it, considering both jar:file:, the path to the jar, and the "!" to be part of the scheme. An additional fix was required for JRubyFile.JarResource to normalize the "." path to an empty entry, because jar:file:x.jar!. is not a valid jar:file URI for the JDK. Includes specs. Relates to jruby#8973.
f56ab13 to
8fd2b7a
Compare
8fd2b7a to
653af7c
Compare
This was referenced Aug 27, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This fixes one issue with the new logic to process globs without scheme. The intent of this code appears to have been to remove the scheme from the path portion, used for fnmatching and character-by- character comparisons. However in that case the scheme must always be prepended when querying the "filesystem", so that URLs and such can always use appropriate logic. The patch here does the following:
This appears to fix the issue in #8973.
Backported from #8978 for 9.4.