From a8067f28e7df7cc08e28877861f9995425c97afd Mon Sep 17 00:00:00 2001 From: Jack Conradson Date: Mon, 8 Sep 2025 13:18:00 -0700 Subject: [PATCH 1/2] Add ability to comment in transport version files --- .../org/elasticsearch/TransportVersion.java | 6 +++- .../elasticsearch/TransportVersionTests.java | 35 +++++++++++++++++++ 2 files changed, 40 insertions(+), 1 deletion(-) diff --git a/server/src/main/java/org/elasticsearch/TransportVersion.java b/server/src/main/java/org/elasticsearch/TransportVersion.java index cff3c22aa9e9e..3f346e57f0dea 100644 --- a/server/src/main/java/org/elasticsearch/TransportVersion.java +++ b/server/src/main/java/org/elasticsearch/TransportVersion.java @@ -108,6 +108,7 @@ static T parseFromBufferedReader( * This method takes in the parameter {@code upperBound} which is the highest transport version id * that will be loaded by this node. */ + @SuppressWarnings("checkstyle:EmptyBlock") public static TransportVersion fromBufferedReader( String component, String path, @@ -117,7 +118,10 @@ public static TransportVersion fromBufferedReader( Integer upperBound ) { try { - String line = bufferedReader.readLine(); + String line; + do { + line = bufferedReader.readLine(); + } while (line.replaceAll("\\s+", "").startsWith("#")); String[] parts = line.replaceAll("\\s+", "").split(","); String check; while ((check = bufferedReader.readLine()) != null) { diff --git a/server/src/test/java/org/elasticsearch/TransportVersionTests.java b/server/src/test/java/org/elasticsearch/TransportVersionTests.java index 761ae19dbad7d..8b4fdb371411a 100644 --- a/server/src/test/java/org/elasticsearch/TransportVersionTests.java +++ b/server/src/test/java/org/elasticsearch/TransportVersionTests.java @@ -354,4 +354,39 @@ public void testSupports() { assertThat(new TransportVersion(null, 100001000, null).supports(test4), is(true)); assertThat(new TransportVersion(null, 100001001, null).supports(test4), is(true)); } + + public void testComment() { + byte[] data1 = "#comment\n1000000".getBytes(StandardCharsets.UTF_8); + TransportVersion test1 = TransportVersion.fromBufferedReader( + "", + "testSupports3", + false, + true, + new BufferedReader(new InputStreamReader(new ByteArrayInputStream(data1), StandardCharsets.UTF_8)), + 5000000 + ); + assertThat(new TransportVersion(null, 1000000, null).supports(test1), is(true)); + + byte[] data2 = " # comment\n1000000".getBytes(StandardCharsets.UTF_8); + TransportVersion test2 = TransportVersion.fromBufferedReader( + "", + "testSupports3", + false, + true, + new BufferedReader(new InputStreamReader(new ByteArrayInputStream(data2), StandardCharsets.UTF_8)), + 5000000 + ); + assertThat(new TransportVersion(null, 1000000, null).supports(test2), is(true)); + + byte[] data3 = "#comment\n# comment3\n1000000".getBytes(StandardCharsets.UTF_8); + TransportVersion test3 = TransportVersion.fromBufferedReader( + "", + "testSupports3", + false, + true, + new BufferedReader(new InputStreamReader(new ByteArrayInputStream(data3), StandardCharsets.UTF_8)), + 5000000 + ); + assertThat(new TransportVersion(null, 1000000, null).supports(test3), is(true)); + } } From 8021513035fb4cd706874e9b3301dc43fdef0845 Mon Sep 17 00:00:00 2001 From: Jack Conradson Date: Mon, 8 Sep 2025 13:39:58 -0700 Subject: [PATCH 2/2] fix tests --- .../src/main/java/org/elasticsearch/TransportVersion.java | 1 - .../java/org/elasticsearch/TransportVersionTests.java | 8 +++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/server/src/main/java/org/elasticsearch/TransportVersion.java b/server/src/main/java/org/elasticsearch/TransportVersion.java index 3f346e57f0dea..f130f7d62e29b 100644 --- a/server/src/main/java/org/elasticsearch/TransportVersion.java +++ b/server/src/main/java/org/elasticsearch/TransportVersion.java @@ -108,7 +108,6 @@ static T parseFromBufferedReader( * This method takes in the parameter {@code upperBound} which is the highest transport version id * that will be loaded by this node. */ - @SuppressWarnings("checkstyle:EmptyBlock") public static TransportVersion fromBufferedReader( String component, String path, diff --git a/server/src/test/java/org/elasticsearch/TransportVersionTests.java b/server/src/test/java/org/elasticsearch/TransportVersionTests.java index 8b4fdb371411a..e51ca0c553fb6 100644 --- a/server/src/test/java/org/elasticsearch/TransportVersionTests.java +++ b/server/src/test/java/org/elasticsearch/TransportVersionTests.java @@ -356,7 +356,7 @@ public void testSupports() { } public void testComment() { - byte[] data1 = "#comment\n1000000".getBytes(StandardCharsets.UTF_8); + byte[] data1 = ("#comment" + System.lineSeparator() + "1000000").getBytes(StandardCharsets.UTF_8); TransportVersion test1 = TransportVersion.fromBufferedReader( "", "testSupports3", @@ -367,7 +367,7 @@ public void testComment() { ); assertThat(new TransportVersion(null, 1000000, null).supports(test1), is(true)); - byte[] data2 = " # comment\n1000000".getBytes(StandardCharsets.UTF_8); + byte[] data2 = (" # comment" + System.lineSeparator() + "1000000").getBytes(StandardCharsets.UTF_8); TransportVersion test2 = TransportVersion.fromBufferedReader( "", "testSupports3", @@ -378,7 +378,9 @@ public void testComment() { ); assertThat(new TransportVersion(null, 1000000, null).supports(test2), is(true)); - byte[] data3 = "#comment\n# comment3\n1000000".getBytes(StandardCharsets.UTF_8); + byte[] data3 = ("#comment" + System.lineSeparator() + "# comment3" + System.lineSeparator() + "1000000").getBytes( + StandardCharsets.UTF_8 + ); TransportVersion test3 = TransportVersion.fromBufferedReader( "", "testSupports3",