Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,7 @@ public Set<String> getPackagesExcluding(String... excludedRootPackages) {
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) {
if (file.getFileName().toString().endsWith(".class") && attrs.isRegularFile()) {
var pkg = file.getParent().toString().replace('/', '.');
var pkg = JarContentsImpl.this.filesystem.getRoot().relativize(file.getParent()).toString().replace('/', '.');
if (!pkg.isEmpty()) {
packages.add(pkg);
}
Expand Down
3 changes: 1 addition & 2 deletions src/main/java/cpw/mods/niofs/union/UnionFileSystem.java
Original file line number Diff line number Diff line change
Expand Up @@ -404,12 +404,11 @@ public DirectoryStream<Path> newDirStream(final UnionPath path, final DirectoryS
if (!fastPathExists(dir)) {
continue;
}
final var isSimple = embeddedFileSystems.containsKey(bp);
final var ds = Files.newDirectoryStream(dir, filter);
closeables.add(ds);
final var currentPaths = StreamSupport.stream(ds.spliterator(), false)
.filter(p -> testFilter(p, bp, null))
.map(other -> fastPath(isSimple ? other : bp.relativize(other)));
.map(other -> path.resolve(fastPath(dir.relativize(other))));
stream = Stream.concat(stream, currentPaths);
}
final Stream<Path> realStream = stream.distinct();
Expand Down
20 changes: 10 additions & 10 deletions src/test/java/cpw/mods/niofs/union/TestUnionFS.java
Original file line number Diff line number Diff line change
Expand Up @@ -137,13 +137,13 @@ void testPathFiltering() {
final var dir2 = Paths.get("src", "test", "resources", "dir2").toAbsolutePath().normalize();
var fsp = (UnionFileSystemProvider)FileSystemProvider.installedProviders().stream().filter(fs-> fs.getScheme().equals("union")).findFirst().orElseThrow();
var ufs = fsp.newFileSystem((path, base)->!path.startsWith("masktest2.txt"), dir1, dir2);
var t1 = ufs.getPath("masktest.txt");
var t3 = ufs.getPath("masktest3.txt");
var t2 = ufs.getPath("masktest2.txt");
var t1 = ufs.getPath("/masktest.txt");
var t3 = ufs.getPath("/masktest3.txt");
var t2 = ufs.getPath("/masktest2.txt");
assertTrue(Files.exists(t1));
assertTrue(Files.exists(t3));
assertTrue(Files.notExists(t2));
var sd1 = ufs.getPath("subdir1");
var sd1 = ufs.getPath("/subdir1");
var sdt1 = sd1.resolve("masktestsd1.txt");
var walk = Set.of(ufs.getRoot(), t1, t3, sd1, sdt1);
assertDoesNotThrow(()-> {
Expand All @@ -160,9 +160,9 @@ void testFilteredDuplicate() {
var fsp = (UnionFileSystemProvider)FileSystemProvider.installedProviders().stream().filter(fs-> fs.getScheme().equals("union")).findFirst().orElseThrow();
var all = fsp.newFileSystem((a,b) -> true, dir1);
var all_expected = Set.of(
all.getPath("masktest.txt"),
all.getPath("masktest2.txt"),
all.getPath("subdir1/masktestsd1.txt")
all.getPath("/masktest.txt"),
all.getPath("/masktest2.txt"),
all.getPath("/subdir1/masktestsd1.txt")
);
assertDoesNotThrow(() -> {
try (var walk = Files.walk(all.getRoot())) {
Expand All @@ -173,7 +173,7 @@ void testFilteredDuplicate() {

var some = assertDoesNotThrow(() -> fsp.newFileSystem((a,b) -> a.endsWith("/") || a.equals("masktest.txt"), dir1));
var some_expected = Set.of(
some.getPath("masktest.txt")
some.getPath("/masktest.txt")
);
assertDoesNotThrow(() -> {
try (var walk = Files.walk(some.getRoot())) {
Expand All @@ -189,7 +189,7 @@ void testNested() {
var fsp = (UnionFileSystemProvider)FileSystemProvider.installedProviders().stream().filter(fs-> fs.getScheme().equals("union")).findFirst().orElseThrow();
var inner = fsp.newFileSystem((a,b) -> a.endsWith("/") || a.equals("masktest.txt"), dir1);
var outer = fsp.newFileSystem((a, b) -> true, inner.getRoot());
var path = outer.getPath("masktest.txt");
var path = outer.getPath("/masktest.txt");
var expected = Set.of(path);
assertDoesNotThrow(() -> {
try (var walk = Files.walk(outer.getRoot())) {
Expand Down Expand Up @@ -263,7 +263,7 @@ public void testDirectoryVisitorJar() throws Exception {
final List<String> foundFiles = new ArrayList<>();
assertAll(
StreamSupport.stream(dirStream.spliterator(), false)
.peek(path -> foundFiles.add(path.toString()))
.peek(path -> foundFiles.add(root.relativize(path).toString()))
.map(p-> ()-> {
if (!Files.exists(p)) {
throw new NoSuchFileException(p.toString());
Expand Down