This is an automated email from the ASF dual-hosted git repository.

paulk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/groovy.git

commit ac8f1d56f802c52e28b228906a76631cf7c2d39d
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;

Reply via email to