Skip to content

Commit 52392d7

Browse files
committed
Make MemoryFileSystem names guaranteed to be unique
1 parent 2202852 commit 52392d7

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

java-compiler-testing/src/main/java/io/github/ascopes/jct/workspaces/impl/RamDirectoryImpl.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import java.nio.file.FileSystem;
2323
import java.nio.file.Files;
2424
import java.nio.file.Path;
25+
import java.util.UUID;
2526
import org.apiguardian.api.API;
2627
import org.apiguardian.api.API.Status;
2728
import org.slf4j.Logger;
@@ -87,8 +88,11 @@ public static RamDirectoryImpl newRamDirectory(String name) {
8788

8889
assertValidRootName(name);
8990

90-
var fileSystem = MemoryFileSystemProvider.getInstance().createFileSystem(name);
91-
var path = fileSystem.getRootDirectories().iterator().next().resolve(name);
91+
// MemoryFileSystem needs unique FS names to work correctly, so use a UUID to enforce this.
92+
93+
var uniqueName = name + ":" + UUID.randomUUID();
94+
var fileSystem = MemoryFileSystemProvider.getInstance().createFileSystem(uniqueName);
95+
var path = fileSystem.getRootDirectories().iterator().next().resolve(uniqueName);
9296

9397
// Ensure the base directory exists.
9498
uncheckedIo(() -> Files.createDirectories(path));

java-compiler-testing/src/main/java/io/github/ascopes/jct/workspaces/impl/WorkspaceImpl.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import java.util.HashMap;
3030
import java.util.List;
3131
import java.util.Map;
32+
import java.util.UUID;
3233
import javax.tools.JavaFileManager.Location;
3334
import org.apiguardian.api.API;
3435
import org.apiguardian.api.API.Status;

0 commit comments

Comments
 (0)