Index: java/io/BufferedReader.java =================================================================== RCS file: /cvsroot/classpath/classpath/java/io/BufferedReader.java,v retrieving revision 1.21 diff -u -b -B -r1.21 BufferedReader.java --- java/io/BufferedReader.java 27 Dec 2003 13:12:34 -0000 1.21 +++ java/io/BufferedReader.java 6 Feb 2004 13:15:54 -0000 @@ -1,5 +1,5 @@ /* BufferedReader.java - Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 + Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -89,6 +89,11 @@ static final int DEFAULT_BUFFER_SIZE = 8192; /** + * The line buffer for readLine. + */ + private StringBuffer sbuf = null; + + /** * Create a new BufferedReader that will read from the * specified subordinate stream with a default buffer size of 8192 chars. * @@ -439,7 +444,7 @@ int i = lineEnd(limit); if (i < limit) { - String str = new String(buffer, pos, i - pos); + String str = String.valueOf(buffer, pos, i - pos); pos = i + 1; // If the last char in the buffer is a '\r', we must remember // to check if the next char to be read after the buffer is refilled @@ -450,7 +455,10 @@ pos++; return str; } - StringBuffer sbuf = new StringBuffer(200); + if (sbuf == null) + sbuf = new StringBuffer(200); + else + sbuf.setLength(0); sbuf.append(buffer, pos, i - pos); pos = i; // We only want to return null when no characters were read before