diff --git a/runtime/Java/src/org/antlr/v4/runtime/ANTLRFileStream.java b/runtime/Java/src/org/antlr/v4/runtime/ANTLRFileStream.java index 6a74ee479..f66e48211 100644 --- a/runtime/Java/src/org/antlr/v4/runtime/ANTLRFileStream.java +++ b/runtime/Java/src/org/antlr/v4/runtime/ANTLRFileStream.java @@ -33,6 +33,7 @@ import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; +import java.util.Arrays; /** This is an ANTLRInputStream that is loaded from a file * all at once when you construct the object. This is a special case @@ -69,7 +70,10 @@ public class ANTLRFileStream extends ANTLRInputStream { } try { data = new char[size]; - super.n = isr.read(data); + n = isr.read(data); + if (n < data.length) { + data = Arrays.copyOf(data, n); + } } finally { isr.close();