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

rzo1 pushed a commit to branch opennlp-2.x
in repository https://gitbox.apache.org/repos/asf/opennlp.git


The following commit(s) were added to refs/heads/opennlp-2.x by this push:
     new 707148a6 Parse suffixed version without error
707148a6 is described below

commit 707148a6413a16fec876993b79b74f3357ea3203
Author: Rostislav Svoboda <[email protected]>
AuthorDate: Fri Nov 28 09:29:30 2025 +0100

    Parse suffixed version without error
    
    Signed-off-by: Rostislav Svoboda <[email protected]>
---
 opennlp-tools/src/main/java/opennlp/tools/util/Version.java     | 5 ++++-
 opennlp-tools/src/test/java/opennlp/tools/util/VersionTest.java | 8 ++++++++
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/opennlp-tools/src/main/java/opennlp/tools/util/Version.java 
b/opennlp-tools/src/main/java/opennlp/tools/util/Version.java
index 7fd7de0d..06ce68a6 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/util/Version.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/util/Version.java
@@ -156,11 +156,14 @@ public class Version {
       throw new NumberFormatException("Invalid version format '" + version + 
"', expected two dots!");
     }
 
+    int indexThirdDot = version.indexOf('.', indexSecondDot + 1);
     int indexFirstDash = version.indexOf('-');
 
     int versionEnd;
-    if (indexFirstDash == -1) {
+    if (indexFirstDash == -1 && indexThirdDot == -1) {
       versionEnd = version.length();
+    } else if (indexThirdDot != -1) {
+      versionEnd = indexThirdDot;
     } else {
       versionEnd = indexFirstDash;
     }
diff --git a/opennlp-tools/src/test/java/opennlp/tools/util/VersionTest.java 
b/opennlp-tools/src/test/java/opennlp/tools/util/VersionTest.java
index 3133777f..6c0d6d34 100644
--- a/opennlp-tools/src/test/java/opennlp/tools/util/VersionTest.java
+++ b/opennlp-tools/src/test/java/opennlp/tools/util/VersionTest.java
@@ -44,6 +44,14 @@ public class VersionTest {
         Version.parse("1.5.2-SNAPSHOT"));
   }
 
+  @Test
+  void testParseSuffixedVersion() {
+    Assertions.assertEquals(new Version(1, 5, 4, false),
+        Version.parse("1.5.4.foobar-007"));
+    Assertions.assertEquals(new Version(1, 5, 4, false),
+        Version.parse("1.5.4.foobar"));
+  }
+
   @Test
   void testParseProjectVersionWithRarePatchVersion() {
     // A rare extra patch version is present (e.g., 2.5.6.1), which OpenNLP 
normally doesn't use.

Reply via email to