From: miracleshiy <857701789@qq.com> Date: Wed, 17 May 2023 13:37:17 +0000 (+0800) Subject: Fix:when ignoredComments=false, FileUtils.readLines() will return empty list. (#527) X-Git-Tag: release-3.10.0~6 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=3c2e7e297e9c6c00de5c831285b7b7d79d4138c9;p=pf4j.git Fix:when ignoredComments=false, FileUtils.readLines() will return empty list. (#527) --- diff --git a/pf4j/src/main/java/org/pf4j/util/FileUtils.java b/pf4j/src/main/java/org/pf4j/util/FileUtils.java index 285a280..bde31f4 100644 --- a/pf4j/src/main/java/org/pf4j/util/FileUtils.java +++ b/pf4j/src/main/java/org/pf4j/util/FileUtils.java @@ -57,7 +57,7 @@ public final class FileUtils { try (BufferedReader reader = new BufferedReader(new FileReader(file))) { String line; while ((line = reader.readLine()) != null) { - if (ignoreComments && !line.startsWith("#") && !lines.contains(line)) { + if (!(ignoreComments && line.startsWith("#")) && !lines.contains(line)) { lines.add(line); } } diff --git a/pf4j/src/test/java/org/pf4j/util/FileUtilsTest.java b/pf4j/src/test/java/org/pf4j/util/FileUtilsTest.java index 050b3f1..756b3b9 100644 --- a/pf4j/src/test/java/org/pf4j/util/FileUtilsTest.java +++ b/pf4j/src/test/java/org/pf4j/util/FileUtilsTest.java @@ -19,9 +19,11 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.io.TempDir; import org.pf4j.test.PluginZip; +import java.io.*; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; +import java.util.List; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; @@ -65,4 +67,32 @@ public class FileUtilsTest { assertEquals(folder, FileUtils.expandIfZip(folder)); } + @Test + public void readLinesIgnoreCommentTest() throws IOException { + File file = createSampleFile("test"); + + // ignoreComments = true + List ignoreCommentsLines = FileUtils.readLines(file.toPath(), true); + assertEquals("1 content", ignoreCommentsLines.get(0)); + assertEquals(2, ignoreCommentsLines.size()); + + // ignoreComments = false + List lines = FileUtils.readLines(file.toPath(), false); + assertEquals("# 1 comment", lines.get(0)); + assertEquals(4, lines.size()); + file.deleteOnExit(); + } + + public File createSampleFile(String fileName) throws IOException { + File file = File.createTempFile(fileName, ".txt"); + file.deleteOnExit(); + + try (Writer writer = new OutputStreamWriter(Files.newOutputStream(file.toPath()))) { + writer.write("# 1 comment\n"); + writer.write("1 content\n"); + writer.write("2 content\n"); + writer.write("# 2 comment\n"); + } + return file; + } }