diff --git a/archunit/src/main/java/com/tngtech/archunit/library/freeze/ViolationStoreFactory.java b/archunit/src/main/java/com/tngtech/archunit/library/freeze/ViolationStoreFactory.java index 81e6418d42..68f8c07313 100644 --- a/archunit/src/main/java/com/tngtech/archunit/library/freeze/ViolationStoreFactory.java +++ b/archunit/src/main/java/com/tngtech/archunit/library/freeze/ViolationStoreFactory.java @@ -183,7 +183,7 @@ public List getViolations(ArchRule rule) { private List readLines(String ruleDetailsFileName) { String violationsText = readStoreFile(ruleDetailsFileName); - List lines = Splitter.on(UNESCAPED_LINE_BREAK_PATTERN).splitToList(violationsText); + List lines = Splitter.on(UNESCAPED_LINE_BREAK_PATTERN).omitEmptyStrings().splitToList(violationsText); return unescape(lines); } diff --git a/archunit/src/test/java/com/tngtech/archunit/library/freeze/TextFileBasedViolationStoreTest.java b/archunit/src/test/java/com/tngtech/archunit/library/freeze/TextFileBasedViolationStoreTest.java index 4c4c41463a..7720a3de1c 100644 --- a/archunit/src/test/java/com/tngtech/archunit/library/freeze/TextFileBasedViolationStoreTest.java +++ b/archunit/src/test/java/com/tngtech/archunit/library/freeze/TextFileBasedViolationStoreTest.java @@ -79,6 +79,15 @@ public void reads_violations_of_single_rule_from_configured_folder() { assertThat(storedViolations).containsOnly("first violation", "second violation"); } + @Test + public void reads_empty_list_of_violations() { + store.save(defaultRule(), ImmutableList.of()); + + List storedViolations = store.getViolations(defaultRule()); + + assertThat(storedViolations).isEmpty(); + } + @Test public void stores_violations_of_multiple_rules() { ArchRule firstRule = rule("first rule");