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
2 changes: 2 additions & 0 deletions src/main/java/cpw/mods/jarhandling/impl/JarContentsImpl.java
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,8 @@ private Map<Path, Integer> readMultiReleaseInfo() {
}

var vers = filesystem.getRoot().resolve("META-INF/versions");
if (!Files.isDirectory(vers)) return Map.of();

try (var walk = Files.walk(vers)) {
Map<Path, Integer> pathToJavaVersion = new HashMap<>();
walk
Expand Down
7 changes: 7 additions & 0 deletions src/test/java/cpw/mods/jarhandling/impl/TestMultiRelease.java
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,13 @@ public void testMultiRelease() {
Assertions.assertNotEquals("too new", bContents.strip());
}

@Test
public void testMultiReleaseNoVersions() {
Path rootDir = Paths.get("src", "test", "resources", "multirelease-noversions");
// Jars marked with Multi-Release but don't actually have a versions folder should not throw
Assertions.assertDoesNotThrow(() -> SecureJar.from(rootDir));
}

private static String readString(SecureJar jar, String file) {
// Note: we must read the jar through the module data provider for version-specific files to be used
try (var is = jar.moduleDataProvider().open(file).get()) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Multi-Release: true