You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by el...@apache.org on 2026/07/22 13:32:40 UTC
(maven-toolchains-plugin) branch master updated: Revert accidental direct push of version comparator fix (#178)
This is an automated email from the ASF dual-hosted git repository.
elharo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-toolchains-plugin.git
The following commit(s) were added to refs/heads/master by this push:
new 7318c88 Revert accidental direct push of version comparator fix (#178)
7318c88 is described below
commit 7318c8874d46417065139bd8a6ede47511526799
Author: Elliotte Rusty Harold <el...@users.noreply.github.com>
AuthorDate: Wed Jul 22 13:32:34 2026 +0000
Revert accidental direct push of version comparator fix (#178)
* Revert "Expand version comparator test with multi-part version strings"
This reverts commit b83d216c634618d3d92f7d9be11ca42b43fcb000.
* Revert "Fix version comparator: use numeric comparison instead of lexicographic string comparison (#166)"
This reverts commit 5d385b6605c379f840718d40f0e23288f36c627f.
---
.../plugins/toolchain/jdk/ToolchainDiscoverer.java | 25 ++++----
.../toolchain/jdk/ToolchainDiscovererTest.java | 67 ----------------------
2 files changed, 12 insertions(+), 80 deletions(-)
diff --git a/src/main/java/org/apache/maven/plugins/toolchain/jdk/ToolchainDiscoverer.java b/src/main/java/org/apache/maven/plugins/toolchain/jdk/ToolchainDiscoverer.java
index 3b671cc..fa9455d 100644
--- a/src/main/java/org/apache/maven/plugins/toolchain/jdk/ToolchainDiscoverer.java
+++ b/src/main/java/org/apache/maven/plugins/toolchain/jdk/ToolchainDiscoverer.java
@@ -370,25 +370,24 @@ public class ToolchainDiscoverer {
String[] b = v2.split("\\.");
int length = Math.min(a.length, b.length);
for (int i = 0; i < length; i++) {
- int oa = parseInt(a[i]);
- int ob = parseInt(b[i]);
- if (oa != ob) {
- return Integer.compare(oa, ob);
+ String oa = a[i];
+ String ob = b[i];
+ if (!Objects.equals(oa, ob)) {
+ // A null element is less than a non-null element
+ if (oa == null || ob == null) {
+ return oa == null ? -1 : 1;
+ }
+ int v = oa.compareTo(ob);
+ if (v != 0) {
+ return v;
+ }
}
}
- return Integer.compare(a.length, b.length);
+ return a.length - b.length;
})
.reversed();
}
- private static int parseInt(String s) {
- try {
- return Integer.parseInt(s);
- } catch (NumberFormatException e) {
- return 0;
- }
- }
-
private Set<Path> findJdks() {
if (foundJdks == null) {
synchronized (this) {
diff --git a/src/test/java/org/apache/maven/plugins/toolchain/jdk/ToolchainDiscovererTest.java b/src/test/java/org/apache/maven/plugins/toolchain/jdk/ToolchainDiscovererTest.java
index 4a0907f..11657c0 100644
--- a/src/test/java/org/apache/maven/plugins/toolchain/jdk/ToolchainDiscovererTest.java
+++ b/src/test/java/org/apache/maven/plugins/toolchain/jdk/ToolchainDiscovererTest.java
@@ -18,11 +18,7 @@
*/
package org.apache.maven.plugins.toolchain.jdk;
-import java.util.ArrayList;
-import java.util.List;
-
import org.apache.maven.toolchain.model.PersistedToolchains;
-import org.apache.maven.toolchain.model.ToolchainModel;
import org.codehaus.plexus.util.xml.Xpp3Dom;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.condition.DisabledOnJre;
@@ -31,7 +27,6 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import static org.apache.maven.plugins.toolchain.jdk.ToolchainDiscoverer.CURRENT;
-import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -56,66 +51,4 @@ public class ToolchainDiscovererTest {
assertTrue(persistedToolchains.getToolchains().stream()
.anyMatch(tc -> tc.getProvides().containsKey(CURRENT)));
}
-
- @Test
- void testVersionComparator() {
- ToolchainDiscoverer discoverer = new ToolchainDiscoverer();
-
- ToolchainModel jdk8 = new ToolchainModel();
- jdk8.setType("jdk");
- jdk8.addProvide("version", "8");
-
- ToolchainModel jdk11 = new ToolchainModel();
- jdk11.setType("jdk");
- jdk11.addProvide("version", "11");
-
- ToolchainModel jdk17 = new ToolchainModel();
- jdk17.setType("jdk");
- jdk17.addProvide("version", "17");
-
- List<ToolchainModel> list = new ArrayList<>();
- list.add(jdk8);
- list.add(jdk17);
- list.add(jdk11);
-
- list.sort(discoverer.version());
-
- assertEquals("17", list.get(0).getProvides().getProperty("version"));
- assertEquals("11", list.get(1).getProvides().getProperty("version"));
- assertEquals("8", list.get(2).getProvides().getProperty("version"));
- }
-
- @Test
- void testVersionComparatorMultiPart() {
- ToolchainDiscoverer discoverer = new ToolchainDiscoverer();
-
- ToolchainModel v1 = new ToolchainModel();
- v1.setType("jdk");
- v1.addProvide("version", "11.0.1");
-
- ToolchainModel v2 = new ToolchainModel();
- v2.setType("jdk");
- v2.addProvide("version", "11.0.31");
-
- ToolchainModel v3 = new ToolchainModel();
- v3.setType("jdk");
- v3.addProvide("version", "17.0.1");
-
- ToolchainModel v4 = new ToolchainModel();
- v4.setType("jdk");
- v4.addProvide("version", "1.8");
-
- List<ToolchainModel> list = new ArrayList<>();
- list.add(v1);
- list.add(v2);
- list.add(v3);
- list.add(v4);
-
- list.sort(discoverer.version());
-
- assertEquals("17.0.1", list.get(0).getProvides().getProperty("version"));
- assertEquals("11.0.31", list.get(1).getProvides().getProperty("version"));
- assertEquals("11.0.1", list.get(2).getProvides().getProperty("version"));
- assertEquals("1.8", list.get(3).getProvides().getProperty("version"));
- }
}