diff --git a/loader/spring-boot-jarmode-tools/src/main/java/org/springframework/boot/jarmode/tools/IndexedJarStructure.java b/loader/spring-boot-jarmode-tools/src/main/java/org/springframework/boot/jarmode/tools/IndexedJarStructure.java index c4c7dc266ff..2bee7517a0a 100644 --- a/loader/spring-boot-jarmode-tools/src/main/java/org/springframework/boot/jarmode/tools/IndexedJarStructure.java +++ b/loader/spring-boot-jarmode-tools/src/main/java/org/springframework/boot/jarmode/tools/IndexedJarStructure.java @@ -21,8 +21,8 @@ import java.io.FileNotFoundException; import java.io.IOException; import java.nio.charset.StandardCharsets; import java.nio.file.NoSuchFileException; -import java.util.ArrayList; import java.util.Arrays; +import java.util.LinkedHashSet; import java.util.List; import java.util.Set; import java.util.function.UnaryOperator; @@ -60,7 +60,7 @@ class IndexedJarStructure implements JarStructure { private final String classesLocation; - private final List classpathEntries; + private final Set classpathEntries; IndexedJarStructure(Manifest originalManifest, String indexFile) { this.originalManifest = originalManifest; @@ -74,12 +74,12 @@ class IndexedJarStructure implements JarStructure { return (!location.endsWith("/")) ? location + "/" : location; } - private static List readIndexFile(String indexFile) { + private static Set readIndexFile(String indexFile) { String[] lines = Arrays.stream(indexFile.split("\n")) .map((line) -> line.replace("\r", "")) .filter(StringUtils::hasText) .toArray(String[]::new); - List classpathEntries = new ArrayList<>(); + Set classpathEntries = new LinkedHashSet<>(); for (String line : lines) { Assert.state(line.startsWith("- "), "Classpath index file is malformed"); classpathEntries.add(line.substring(3, line.length() - 1));