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

markap14 pushed a commit to branch support/nifi-1.x
in repository https://gitbox.apache.org/repos/asf/nifi.git


The following commit(s) were added to refs/heads/support/nifi-1.x by this push:
     new 22c072e619 NIFI-11323: Fixed last modified change detection of 
dynamicallyModifiesClasspath resources (#7069)
22c072e619 is described below

commit 22c072e619e12725fae74c86570392035d5e418f
Author: Peter Turcsanyi <[email protected]>
AuthorDate: Wed Mar 22 14:15:48 2023 +0100

    NIFI-11323: Fixed last modified change detection of 
dynamicallyModifiesClasspath resources (#7069)
---
 .../apache/nifi/util/file/classloader/ClassLoaderUtils.java  | 10 +++++++---
 .../nifi/util/file/classloader/TestClassLoaderUtils.java     | 12 ++++++++++--
 2 files changed, 17 insertions(+), 5 deletions(-)

diff --git 
a/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/file/classloader/ClassLoaderUtils.java
 
b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/file/classloader/ClassLoaderUtils.java
index 61ef0173e0..487c9d39b6 100644
--- 
a/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/file/classloader/ClassLoaderUtils.java
+++ 
b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/file/classloader/ClassLoaderUtils.java
@@ -155,13 +155,17 @@ public class ClassLoaderUtils {
     }
 
     private static long getLastModified(String url) {
-        File file = null;
+        long lastModified = 0;
         try {
-            file = new File(new URI(url));
+            final URI uri = new URI(url);
+            if (uri.getScheme().equals("file")) {
+                final File file = new File(uri);
+                lastModified = file.lastModified();
+            }
         } catch (URISyntaxException e) {
             LOGGER.error("Error getting last modified date for " + url);
         }
-        return file != null ? file.lastModified() : 0;
+        return lastModified;
     }
 
     protected static ClassLoader createModuleClassLoader(URL[] modules, 
ClassLoader parentClassLoader) {
diff --git 
a/nifi-commons/nifi-utils/src/test/java/org/apache/nifi/util/file/classloader/TestClassLoaderUtils.java
 
b/nifi-commons/nifi-utils/src/test/java/org/apache/nifi/util/file/classloader/TestClassLoaderUtils.java
index e2bec02eba..2ba4796bdc 100644
--- 
a/nifi-commons/nifi-utils/src/test/java/org/apache/nifi/util/file/classloader/TestClassLoaderUtils.java
+++ 
b/nifi-commons/nifi-utils/src/test/java/org/apache/nifi/util/file/classloader/TestClassLoaderUtils.java
@@ -20,7 +20,6 @@ import org.junit.jupiter.api.Test;
 
 import java.io.FilenameFilter;
 import java.net.MalformedURLException;
-import java.net.URISyntaxException;
 import java.net.URL;
 import java.nio.file.Paths;
 import java.util.HashSet;
@@ -114,7 +113,7 @@ public class TestClassLoaderUtils {
     }
 
     @Test
-    public void testGenerateAdditionalUrlsFingerprint() throws 
MalformedURLException, URISyntaxException {
+    public void testGenerateAdditionalUrlsFingerprintForFileUrl() throws 
MalformedURLException {
         final Set<URL> urls = new HashSet<>();
         URL testUrl = 
Paths.get("src/test/resources/TestClassLoaderUtils/TestSuccess.jar").toUri().toURL();
         urls.add(testUrl);
@@ -122,6 +121,15 @@ public class TestClassLoaderUtils {
         assertNotNull(testFingerprint);
     }
 
+    @Test
+    public void testGenerateAdditionalUrlsFingerprintForHttpUrl() throws 
MalformedURLException {
+        final Set<URL> urls = new HashSet<>();
+        URL testUrl = new URL("http://myhost/TestSuccess.jar";);
+        urls.add(testUrl);
+        String testFingerprint = 
ClassLoaderUtils.generateAdditionalUrlsFingerprint(urls, null);
+        assertNotNull(testFingerprint);
+    }
+
     protected FilenameFilter getJarFilenameFilter(){
         return  (dir, name) -> name != null && name.endsWith(".jar");
     }

Reply via email to