From 5cbeff482f3e6e099d4570133d89fdc3b530578b Mon Sep 17 00:00:00 2001 From: Slawomir Jaranowski Date: Tue, 19 Dec 2023 21:50:20 +0100 Subject: [PATCH] Return empty list for not existing source root location --- .../plexus/compiler/AbstractCompiler.java | 7 +++++- .../plexus/compiler/AbstractCompilerTest.java | 25 +++++++++++++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 plexus-compiler-api/src/test/java/org/codehaus/plexus/compiler/AbstractCompilerTest.java diff --git a/plexus-compiler-api/src/main/java/org/codehaus/plexus/compiler/AbstractCompiler.java b/plexus-compiler-api/src/main/java/org/codehaus/plexus/compiler/AbstractCompiler.java index aa24c9ce..13f5b47b 100644 --- a/plexus-compiler-api/src/main/java/org/codehaus/plexus/compiler/AbstractCompiler.java +++ b/plexus-compiler-api/src/main/java/org/codehaus/plexus/compiler/AbstractCompiler.java @@ -25,6 +25,7 @@ */ import java.io.File; import java.io.IOException; +import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Set; @@ -145,10 +146,14 @@ public static String getPathString(List pathElements) { } protected static Set getSourceFilesForSourceRoot(CompilerConfiguration config, String sourceLocation) { - DirectoryScanner scanner = new DirectoryScanner(); + DirectoryScanner scanner = new DirectoryScanner(); scanner.setBasedir(sourceLocation); + if (!scanner.getBasedir().exists()) { + return Collections.emptySet(); + } + Set includes = config.getIncludes(); if (includes != null && !includes.isEmpty()) { diff --git a/plexus-compiler-api/src/test/java/org/codehaus/plexus/compiler/AbstractCompilerTest.java b/plexus-compiler-api/src/test/java/org/codehaus/plexus/compiler/AbstractCompilerTest.java new file mode 100644 index 00000000..c630633f --- /dev/null +++ b/plexus-compiler-api/src/test/java/org/codehaus/plexus/compiler/AbstractCompilerTest.java @@ -0,0 +1,25 @@ +package org.codehaus.plexus.compiler; + +import java.io.File; +import java.util.Set; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + +class AbstractCompilerTest { + + @Test + void getSourceFilesForSourceRootShouldReturnEmptyForNotExistingLocation() { + + CompilerConfiguration config = new CompilerConfiguration(); + File fileLocation = new File("non/existing/location").getAbsoluteFile(); + + assertFalse(fileLocation.exists()); + + Set sourcesFile = AbstractCompiler.getSourceFilesForSourceRoot(config, fileLocation.getAbsolutePath()); + + assertTrue(sourcesFile.isEmpty()); + } +}