This is an automated email from the ASF dual-hosted git repository. paulk pushed a commit to branch GROOVY_4_0_X in repository https://gitbox.apache.org/repos/asf/groovy.git
commit 0e3c0ef5d75b486b8e4f1944b93ebe668ae7a92f Author: Weixie Cui <[email protected]> AuthorDate: Fri Mar 27 11:18:06 2026 +0800 minor refactor: fix read(char[], int, int) loop bound in LineColumnReader Use i < startOffset + length instead of i <= startOffset + length so the method reads at most length characters into the destination slice, matching BufferedReader semantics and avoiding an off-by-one past the requested range. --- src/main/java/groovy/io/LineColumnReader.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/groovy/io/LineColumnReader.java b/src/main/java/groovy/io/LineColumnReader.java index 1d3b113e56..a49462e1a2 100644 --- a/src/main/java/groovy/io/LineColumnReader.java +++ b/src/main/java/groovy/io/LineColumnReader.java @@ -136,7 +136,7 @@ public class LineColumnReader extends BufferedReader { */ @Override public int read(char[] chars, int startOffset, int length) throws IOException { - for (int i = startOffset; i <= startOffset + length; i++) { + for (int i = startOffset; i < startOffset + length; i++) { int readInt = read(); if (readInt == -1) return i - startOffset; chars[i] = (char)readInt;
