classpath-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [cp-patches] Re: Patch: FYI: fix http Headers oddity


From: Bryce McKinlay
Subject: Re: [cp-patches] Re: Patch: FYI: fix http Headers oddity
Date: Thu, 19 May 2005 17:44:27 -0400
User-agent: Mozilla Thunderbird 1.0 (X11/20041206)

Michael Koch 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.

LineInputStream reads one byte and transforms it into an ascii character.
BufferedReader reads a char (2 bytes) as character.

As I said, this isn't really a big deal because we must convert to chars anyway, since we're returning a String. Using the BufferedReader, the conversion just happens at a different time.

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. 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.

Bryce





reply via email to

[Prev in Thread] Current Thread [Next in Thread]