This is an automated email from the ASF dual-hosted git repository.

pvillard pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/nifi.git


The following commit(s) were added to refs/heads/main by this push:
     new c11291213af NIFI-15332 Replaced print to console with a log statement 
when the configured additional classpath in ExecuteGroovyScript does not exist.
c11291213af is described below

commit c11291213afe7d0878c0de740931e96164825400
Author: dan-s1 <[email protected]>
AuthorDate: Thu Dec 11 19:37:38 2025 +0000

    NIFI-15332 Replaced print to console with a log statement when the 
configured additional classpath in ExecuteGroovyScript does not exist.
    
    Signed-off-by: Pierre Villard <[email protected]>
    
    This closes #10636.
---
 .../apache/nifi/processors/groovyx/ExecuteGroovyScript.java |  2 +-
 .../java/org/apache/nifi/processors/groovyx/util/Files.java | 13 +++++++------
 .../nifi/processors/groovyx/ExecuteGroovyScriptTest.java    | 13 +++++++++++++
 3 files changed, 21 insertions(+), 7 deletions(-)

diff --git 
a/nifi-extension-bundles/nifi-groovyx-bundle/nifi-groovyx-processors/src/main/java/org/apache/nifi/processors/groovyx/ExecuteGroovyScript.java
 
b/nifi-extension-bundles/nifi-groovyx-bundle/nifi-groovyx-processors/src/main/java/org/apache/nifi/processors/groovyx/ExecuteGroovyScript.java
index 227b5cf03b1..124394101f4 100644
--- 
a/nifi-extension-bundles/nifi-groovyx-bundle/nifi-groovyx-processors/src/main/java/org/apache/nifi/processors/groovyx/ExecuteGroovyScript.java
+++ 
b/nifi-extension-bundles/nifi-groovyx-bundle/nifi-groovyx-processors/src/main/java/org/apache/nifi/processors/groovyx/ExecuteGroovyScript.java
@@ -318,7 +318,7 @@ public class ExecuteGroovyScript extends AbstractProcessor {
             conf.setDebug(true);
             shell = new GroovyShell(conf);
             if (addClasspath != null && !addClasspath.isEmpty()) {
-                for (File fcp : Files.listPathsFiles(addClasspath)) {
+                for (File fcp : Files.listPathsFiles(addClasspath, 
getLogger())) {
                     if (!fcp.exists()) {
                         throw new ProcessException("Path not found `" + fcp + 
"` for `" + ADD_CLASSPATH.getDisplayName() + "`");
                     }
diff --git 
a/nifi-extension-bundles/nifi-groovyx-bundle/nifi-groovyx-processors/src/main/java/org/apache/nifi/processors/groovyx/util/Files.java
 
b/nifi-extension-bundles/nifi-groovyx-bundle/nifi-groovyx-processors/src/main/java/org/apache/nifi/processors/groovyx/util/Files.java
index ea0ec5ecac9..6a27f63c88b 100644
--- 
a/nifi-extension-bundles/nifi-groovyx-bundle/nifi-groovyx-processors/src/main/java/org/apache/nifi/processors/groovyx/util/Files.java
+++ 
b/nifi-extension-bundles/nifi-groovyx-bundle/nifi-groovyx-processors/src/main/java/org/apache/nifi/processors/groovyx/util/Files.java
@@ -16,6 +16,7 @@
  */
 package org.apache.nifi.processors.groovyx.util;
 
+import org.apache.nifi.logging.ComponentLog;
 import java.io.File;
 import java.util.Arrays;
 import java.util.Collections;
@@ -34,13 +35,13 @@ public class Files {
      *
      * @return file list defined by classpath parameter
      */
-    public static Set<File> listPathsFiles(String classpath) {
-        if (classpath == null || classpath.length() == 0) {
+    public static Set<File> listPathsFiles(String classpath, ComponentLog 
logger) {
+        if (classpath == null || classpath.isEmpty()) {
             return Collections.emptySet();
         }
         Set<File> files = new HashSet<>();
         for (String cp : classpath.split("\\s*[;,]\\s*")) {
-            files.addAll(listPathFiles(cp));
+            files.addAll(listPathFiles(cp, logger));
         }
         return files;
     }
@@ -49,7 +50,7 @@ public class Files {
      * returns file list from one path. the path could be exact filename (one 
file returned), exact directory (all files from dir returned)
      * or exact dir with masked file names like ./dir/*.jar (all jars returned)
      */
-    public static List<File> listPathFiles(String path) {
+    public static List<File> listPathFiles(String path, ComponentLog logger) {
         File f = new File(path);
         String fname = f.getName();
         if (fname.contains("?") || fname.contains("*")) {
@@ -58,8 +59,8 @@ public class Files {
             return list == null ? Collections.emptyList() : 
Arrays.asList(list);
         }
         if (!f.exists()) {
-            System.err.println("WARN: path not found for: " + f);
+           logger.warn("path not found for {}", f);
         }
-        return Arrays.asList(f);
+        return List.of(f);
     }
 }
diff --git 
a/nifi-extension-bundles/nifi-groovyx-bundle/nifi-groovyx-processors/src/test/java/org/apache/nifi/processors/groovyx/ExecuteGroovyScriptTest.java
 
b/nifi-extension-bundles/nifi-groovyx-bundle/nifi-groovyx-processors/src/test/java/org/apache/nifi/processors/groovyx/ExecuteGroovyScriptTest.java
index 8b79373868e..914c0cb7c86 100644
--- 
a/nifi-extension-bundles/nifi-groovyx-bundle/nifi-groovyx-processors/src/test/java/org/apache/nifi/processors/groovyx/ExecuteGroovyScriptTest.java
+++ 
b/nifi-extension-bundles/nifi-groovyx-bundle/nifi-groovyx-processors/src/test/java/org/apache/nifi/processors/groovyx/ExecuteGroovyScriptTest.java
@@ -30,6 +30,7 @@ import org.apache.nifi.serialization.record.MockRecordParser;
 import org.apache.nifi.serialization.record.MockRecordWriter;
 import org.apache.nifi.serialization.record.RecordField;
 import org.apache.nifi.serialization.record.RecordFieldType;
+import org.apache.nifi.util.MockComponentLog;
 import org.apache.nifi.util.MockFlowFile;
 import org.apache.nifi.util.MockProcessContext;
 import org.apache.nifi.util.MockProcessorInitializationContext;
@@ -64,6 +65,7 @@ import java.util.UUID;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 @DisabledOnOs(OS.WINDOWS)
 public class ExecuteGroovyScriptTest {
@@ -188,6 +190,17 @@ public class ExecuteGroovyScriptTest {
         assertEquals(expectedClasspathURLs, new 
HashSet<>(Arrays.asList(classpathURLs)));
     }
 
+    @Test
+    void testNonExistingAdditionalClasspath() {
+        runner.setProperty(ExecuteGroovyScript.SCRIPT_BODY, ";");
+        runner.setProperty(ExecuteGroovyScript.ADD_CLASSPATH, "someOtherPath");
+        runner.assertNotValid();
+
+        final MockComponentLog logger = runner.getLogger();
+        assertEquals(1, logger.getWarnMessages().size());
+        assertTrue(logger.getWarnMessages().getFirst().getMsg().contains("not 
found"));
+    }
+
     @Test
     public void test_onTrigger_groovy() {
         runner.setProperty(ExecuteGroovyScript.SCRIPT_FILE, 
TEST_RESOURCE_LOCATION + "test_onTrigger.groovy");

Reply via email to