Bryce McKinlay wrote:
> >>>>Does anyone know why we use the custom "LineInputStream" class instead 
> >>>>of, say, BufferedReader here? At one point BufferedReader.readLine() 
> >>>>was buggy and could "read too much" and block before returning a line, 
> >>>>but I believe we have fixed that. Code re-use would help to avoid bugs 
> >>>>like this ;-)
> >>>>
> >>>Erm, because LineInputStream is an InputStream dealing with bytes, and
> >>>BufferedReader is a Reader dealing with chars.
> >>>
> >>Why is this distinction important? We are converting the result to chars 
> >>(well, a String) anyway.
> >>   
> ...
> However, Tromey did point out a good reason on IRC earlier today: 
> BufferedReader.readLine() would read beyond the end of the headers on 
> the underlying stream.

Exactly.

> Since the underlying stream may really be bytes 
> and not characters, we need a mechanism to reset the stream back to the 
> first byte after the headers when it reads past the last EOL.

In fact we don't need any such mechanism, because LineInputStream
already exists and works.
-- 
Chris Burdess


_______________________________________________
Classpath-patches mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/classpath-patches

Reply via email to