diff --git a/src/main/java/com/puppycrawl/tools/checkstyle/checks/header/AbstractHeaderCheck.java b/src/main/java/com/puppycrawl/tools/checkstyle/checks/header/AbstractHeaderCheck.java index 8f57e76f9..a42dc0d50 100644 --- a/src/main/java/com/puppycrawl/tools/checkstyle/checks/header/AbstractHeaderCheck.java +++ b/src/main/java/com/puppycrawl/tools/checkstyle/checks/header/AbstractHeaderCheck.java @@ -193,6 +193,15 @@ public abstract class AbstractHeaderCheck extends AbstractFileSetCheck @Override public Set getExternalResourceLocations() { - return Collections.singleton(headerFile.toString()); + final Set result; + + if (headerFile == null) { + result = Collections.emptySet(); + } + else { + result = Collections.singleton(headerFile.toString()); + } + + return result; } } diff --git a/src/test/java/com/puppycrawl/tools/checkstyle/checks/header/HeaderCheckTest.java b/src/test/java/com/puppycrawl/tools/checkstyle/checks/header/HeaderCheckTest.java index bbc790635..e6938f43e 100644 --- a/src/test/java/com/puppycrawl/tools/checkstyle/checks/header/HeaderCheckTest.java +++ b/src/test/java/com/puppycrawl/tools/checkstyle/checks/header/HeaderCheckTest.java @@ -268,4 +268,25 @@ public class HeaderCheckTest extends BaseFileSetCheckTestSupport { verify(checker, getPath("InputHeader.java"), expected); } + + @Test + public void testCacheHeaderWithoutFile() throws Exception { + final DefaultConfiguration checkConfig = createCheckConfig(HeaderCheck.class); + checkConfig.addAttribute("header", "Test"); + + final DefaultConfiguration checkerConfig = new DefaultConfiguration("checkstyle_checks"); + checkerConfig.addChild(checkConfig); + checkerConfig.addAttribute("cacheFile", temporaryFolder.newFile().getPath()); + + final Checker checker = new Checker(); + checker.setModuleClassLoader(Thread.currentThread().getContextClassLoader()); + checker.configure(checkerConfig); + checker.addListener(new BriefUtLogger(stream)); + + final String[] expected = { + "1: " + getCheckMessage(MSG_MISMATCH, "Test"), + }; + + verify(checker, getPath("InputHeader.java"), expected); + } }