Skip to content

Commit cff3fdb

Browse files
committed
Fix version parser used by gradle (#51773)
Due to of a typo in the version regex pattern only the last digit of a major version number is taken into consideration. So docker's version 17.0.1 is parsed as 7.0.1.
1 parent 8fa4a40 commit cff3fdb

File tree

2 files changed

+5
-2
lines changed

2 files changed

+5
-2
lines changed

buildSrc/src/minimumRuntime/java/org/elasticsearch/gradle/Version.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,9 @@ public enum Mode {
2929
RELAXED
3030
}
3131

32-
private static final Pattern pattern = Pattern.compile("(\\d)+\\.(\\d+)\\.(\\d+)(-alpha\\d+|-beta\\d+|-rc\\d+)?(-SNAPSHOT)?");
32+
private static final Pattern pattern = Pattern.compile("(\\d+)\\.(\\d+)\\.(\\d+)(-alpha\\d+|-beta\\d+|-rc\\d+)?(-SNAPSHOT)?");
3333

34-
private static final Pattern relaxedPattern = Pattern.compile("(\\d)+\\.(\\d+)\\.(\\d+)(-[a-zA-Z0-9_]+)*?");
34+
private static final Pattern relaxedPattern = Pattern.compile("(\\d+)\\.(\\d+)\\.(\\d+)(-[a-zA-Z0-9_]+)*?");
3535

3636
public Version(int major, int minor, int revision) {
3737
Objects.requireNonNull(major, "major version can't be null");

buildSrc/src/test/java/org/elasticsearch/gradle/VersionTests.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ public void testVersionParsing() {
3838
assertVersionEquals("5.1.2-rc3", 5, 1, 2);
3939
assertVersionEquals("6.1.2-SNAPSHOT", 6, 1, 2);
4040
assertVersionEquals("6.1.2-beta1-SNAPSHOT", 6, 1, 2);
41+
assertVersionEquals("17.03.11", 17, 3, 11);
4142
}
4243

4344
public void testRelaxedVersionParsing() {
@@ -46,6 +47,7 @@ public void testRelaxedVersionParsing() {
4647
assertVersionEquals("6.1.2-beta1-SNAPSHOT", 6, 1, 2, Version.Mode.RELAXED);
4748
assertVersionEquals("6.1.2-foo", 6, 1, 2, Version.Mode.RELAXED);
4849
assertVersionEquals("6.1.2-foo-bar", 6, 1, 2, Version.Mode.RELAXED);
50+
assertVersionEquals("16.01.22", 16, 1, 22, Version.Mode.RELAXED);
4951
}
5052

5153
public void testCompareWithStringVersions() {
@@ -91,6 +93,7 @@ public void testToString() {
9193

9294
public void testCompareVersions() {
9395
assertEquals(0, new Version(7, 0, 0).compareTo(new Version(7, 0, 0)));
96+
assertOrder(Version.fromString("19.0.1"), Version.fromString("20.0.3"));
9497
}
9598

9699
public void testExceptionEmpty() {

0 commit comments

Comments
 (0)