From de803043ff558813a6a4117ad7e221128b0e8e5d Mon Sep 17 00:00:00 2001 From: Jack Conradson Date: Mon, 8 Sep 2025 15:01:22 -0700 Subject: [PATCH] Add ability to comment in transport version files (#134329) Comments may be added to the beginning of transport version files by starting each comment line with the hash # character. --- .../org/elasticsearch/TransportVersion.java | 5 ++- .../elasticsearch/TransportVersionTests.java | 37 +++++++++++++++++++ 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/server/src/main/java/org/elasticsearch/TransportVersion.java b/server/src/main/java/org/elasticsearch/TransportVersion.java index bdef45eff2696..10641cae54e6d 100644 --- a/server/src/main/java/org/elasticsearch/TransportVersion.java +++ b/server/src/main/java/org/elasticsearch/TransportVersion.java @@ -117,7 +117,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 18fdba6b668f0..a197c348c9c26 100644 --- a/server/src/test/java/org/elasticsearch/TransportVersionTests.java +++ b/server/src/test/java/org/elasticsearch/TransportVersionTests.java @@ -363,4 +363,41 @@ 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" + System.lineSeparator() + "1000000").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" + System.lineSeparator() + "1000000").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" + System.lineSeparator() + "# comment3" + System.lineSeparator() + "1000000").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)); + } }