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

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

commit 09305ab6284df51ff0f435f8e0df61c603e63f63
Author: Richard Zowalla <[email protected]>
AuthorDate: Sun Mar 15 19:27:09 2026 +0100

     OPENNLP-1735: Fix Windows classpath model discovery after JDK 21 migration
    
      The URI constructor does not handle Windows-style paths (e.g., 
C:\path\to\file.jar) correctly, causing silent failures in 
getClassPathUrlsFromSystemProperty().
      Uses Path.of().toUri().toURL() which properly converts platform-specific 
paths.
---
 .../opennlp/tools/models/simple/SimpleClassPathModelFinder.java     | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git 
a/opennlp-core/opennlp-models/src/main/java/opennlp/tools/models/simple/SimpleClassPathModelFinder.java
 
b/opennlp-core/opennlp-models/src/main/java/opennlp/tools/models/simple/SimpleClassPathModelFinder.java
index 0a85fb98..44bf4d61 100644
--- 
a/opennlp-core/opennlp-models/src/main/java/opennlp/tools/models/simple/SimpleClassPathModelFinder.java
+++ 
b/opennlp-core/opennlp-models/src/main/java/opennlp/tools/models/simple/SimpleClassPathModelFinder.java
@@ -25,6 +25,7 @@ import java.net.URI;
 import java.net.URISyntaxException;
 import java.net.URL;
 import java.net.URLClassLoader;
+import java.nio.file.Path;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
@@ -68,7 +69,6 @@ import opennlp.tools.models.ClassPathModelFinder;
 public class SimpleClassPathModelFinder extends AbstractClassPathModelFinder 
implements ClassPathModelFinder {
 
   private static final Logger logger = 
LoggerFactory.getLogger(SimpleClassPathModelFinder.class);
-  private static final String FILE_PREFIX = "file";
   private static final Pattern CLASSPATH_SEPARATOR_PATTERN_WINDOWS = 
Pattern.compile(";");
   private static final Pattern CLASSPATH_SEPARATOR_PATTERN_UNIX = 
Pattern.compile(":");
   // ; for Windows, : for Linux/OSX
@@ -219,8 +219,8 @@ public class SimpleClassPathModelFinder extends 
AbstractClassPathModelFinder imp
     final List<URL> jarUrls = new ArrayList<>();
     for (String classPath: matches) {
       try {
-        jarUrls.add(new URI(FILE_PREFIX, "", classPath, null).toURL());
-      } catch (MalformedURLException | URISyntaxException ignored) {
+        jarUrls.add(Path.of(classPath).toUri().toURL());
+      } catch (MalformedURLException ignored) {
         //if we cannot parse a URL from the system property, just ignore it...
         //we couldn't load it anyway
       }

Reply via email to