Browse Source

Fix:when ignoredComments=false, FileUtils.readLines() will return empty list. (#527)

tags/release-3.10.0
miracleshiy 1 year ago
parent
commit
3c2e7e297e
No account linked to committer's email address

+ 1
- 1
pf4j/src/main/java/org/pf4j/util/FileUtils.java View File

try (BufferedReader reader = new BufferedReader(new FileReader(file))) { try (BufferedReader reader = new BufferedReader(new FileReader(file))) {
String line; String line;
while ((line = reader.readLine()) != null) { while ((line = reader.readLine()) != null) {
if (ignoreComments && !line.startsWith("#") && !lines.contains(line)) {
if (!(ignoreComments && line.startsWith("#")) && !lines.contains(line)) {
lines.add(line); lines.add(line);
} }
} }

+ 30
- 0
pf4j/src/test/java/org/pf4j/util/FileUtilsTest.java View File

import org.junit.jupiter.api.io.TempDir; import org.junit.jupiter.api.io.TempDir;
import org.pf4j.test.PluginZip; import org.pf4j.test.PluginZip;


import java.io.*;
import java.nio.file.Files; import java.nio.file.Files;
import java.nio.file.Path; import java.nio.file.Path;
import java.nio.file.Paths; import java.nio.file.Paths;
import java.util.List;


import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue; import static org.junit.jupiter.api.Assertions.assertTrue;
assertEquals(folder, FileUtils.expandIfZip(folder)); assertEquals(folder, FileUtils.expandIfZip(folder));
} }


@Test
public void readLinesIgnoreCommentTest() throws IOException {
File file = createSampleFile("test");

// ignoreComments = true
List<String> ignoreCommentsLines = FileUtils.readLines(file.toPath(), true);
assertEquals("1 content", ignoreCommentsLines.get(0));
assertEquals(2, ignoreCommentsLines.size());

// ignoreComments = false
List<String> 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;
}
} }

Loading…
Cancel
Save