From 28e46df3e9ae576bbde956927eba6332acf90cdf Mon Sep 17 00:00:00 2001 From: "kenton@google.com" Date: Tue, 22 Dec 2009 19:35:07 +0000 Subject: Clarify that pushLimit() does not limit the number of bytes CodedInputStream will read from the underlying InputStream. --- java/src/main/java/com/google/protobuf/CodedInputStream.java | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'java') diff --git a/java/src/main/java/com/google/protobuf/CodedInputStream.java b/java/src/main/java/com/google/protobuf/CodedInputStream.java index f0c1051d..ad43f96d 100644 --- a/java/src/main/java/com/google/protobuf/CodedInputStream.java +++ b/java/src/main/java/com/google/protobuf/CodedInputStream.java @@ -576,6 +576,14 @@ public final class CodedInputStream { * Sets {@code currentLimit} to (current position) + {@code byteLimit}. This * is called when descending into a length-delimited embedded message. * + *

Note that {@code pushLimit()} does NOT affect how many bytes the + * {@code CodedInputStream} reads from an underlying {@code InputStream} when + * refreshing its buffer. If you need to prevent reading past a certain + * point in the underlying {@code InputStream} (e.g. because you expect it to + * contain more data after the end of the message which you need to handle + * differently) then you must place a wrapper around you {@code InputStream} + * which limits the amount of data that can be read from it. + * * @return the old limit. */ public int pushLimit(int byteLimit) throws InvalidProtocolBufferException { -- cgit v1.2.3