2011/3/1  <ma...@apache.org>:
> Author: markt
> Date: Tue Mar  1 09:00:01 2011
> New Revision: 1075719
>
> URL: http://svn.apache.org/viewvc?rev=1075719&view=rev
> Log:
> Better fix, we actually need to read 20 byres for the test to pass
>
> Modified:
>    tomcat/trunk/test/org/apache/catalina/startup/TestTomcat.java
>
> +                int read = 0;
>                 try {
> -                    is = conn.getInputStream();
> -                    reader = new InputStreamReader(is);
> -                    int len = reader.read(cbuf);
> -                    res.getWriter().write(cbuf, 0, len);
> +                    while (read < 20) {
> +                        is = conn.getInputStream();
> +                        reader = new InputStreamReader(is);

The above two lines should be moved outside the loop.
Besides creating a new Reader on each loop, there is no guarantee that
conn.getInputStream() always returns the same stream that we started
reading, and not a new one.

(It looks like JarURLConnection always returns a new stream)

The write() below can be moved below the loop, but keeping it inside
the loop looks more interesting.

> +                        int len = reader.read(cbuf, read, cbuf.length - 
> read);
> +                        res.getWriter().write(cbuf, 0, len);
> +                        read = read + len;
> +                    }
>                 } finally {
>                     if (reader != null) {
>                         try { reader.close(); } catch(IOException ioe) 
> {/*Ignore*/}
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to