From 9b7993bb2610bdd90dd5683759e9142a9d02a5eb Mon Sep 17 00:00:00 2001 From: Ryan Ernst Date: Fri, 3 Oct 2025 15:42:58 -0700 Subject: [PATCH] Split on line feed when parsing transport files in the build When parsing transport files that may contain comments we split on newline. On windows systems these files _might_ have the line feed replaced by CRLF. This commit adjusts the parsing to only split on line feed so that regardless of what the system line separator is we will split the lines as needed. --- .../internal/transport/TransportVersionDefinition.java | 6 ++++-- .../internal/transport/TransportVersionUpperBound.java | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/transport/TransportVersionDefinition.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/transport/TransportVersionDefinition.java index 5c73b720a0bc8..518411fce5fda 100644 --- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/transport/TransportVersionDefinition.java +++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/transport/TransportVersionDefinition.java @@ -22,9 +22,11 @@ public static TransportVersionDefinition fromString(Path file, String contents, String idsLine = null; if (contents.isEmpty() == false) { - String[] lines = contents.split(System.lineSeparator()); + // Regardless of whether windows newlines exist (they could be added by git), we split on line feed. + // All we care about skipping lines with the comment character, so the remaining \r won't matter + String[] lines = contents.split("\n"); for (String line : lines) { - line = line.replaceAll("\\s+", ""); + line = line.strip(); if (line.startsWith("#") == false) { idsLine = line; break; diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/transport/TransportVersionUpperBound.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/transport/TransportVersionUpperBound.java index af88aa646d790..b37d2ec3676ba 100644 --- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/transport/TransportVersionUpperBound.java +++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/transport/TransportVersionUpperBound.java @@ -24,9 +24,11 @@ public static TransportVersionUpperBound fromString(Path file, String contents) String branch = filename.substring(slashIndex == -1 ? 0 : (slashIndex + 1), filename.length() - 4); String idsLine = null; - String[] lines = contents.split(System.lineSeparator()); + // Regardless of whether windows newlines exist (they could be added by git), we split on line feed. + // All we care about skipping lines with the comment character, so the remaining \r won't matter + String[] lines = contents.split("\n"); for (String line : lines) { - line = line.replaceAll("\\s+", ""); + line = line.strip(); if (line.startsWith("#") == false) { idsLine = line; break;