Details
-
Bug
-
Status: Closed
-
Minor
-
Resolution: Fixed
-
1.2
-
None
-
GNU classpath
Description
Message to mailing list from Anthony Green
http://www.mail-archive.com/commons-dev@jakarta.apache.org/msg82127.html
-----------------------------------------
This support routine from the commons-io project test code assumed that
FileReader.read(byte[]) would always read the entire file. There's no
such guarantee, and some tests were failing on GNU Classpath based VMs
because of this.
Thanks,
AG
— src/test/org/apache/commons/io/testtools/FileBasedTestCase.java~ 2006-07-13 23:44:13.000000000 -0700
+++ src/test/org/apache/commons/io/testtools/FileBasedTestCase.java 2006-07-13 23:44:20.000000000 -0700
@@ -167,18 +171,22 @@
throws IOException
{
Reader ir = new java.io.FileReader( file );
- try
{
- char[] c1 = new char[ c0.length ];
- int numRead = ir.read( c1 );
- assertTrue( "Different number of bytes", numRead == c0.length );
- for( int i = 0;
- i < numRead;
- assertTrue( "Byte " + i + " differs (" + c0[ i ] + " != " + c1[ i ] + ")",
- c0[ i ] == c1[ i ] ), i++
- );
- }
finally
{ - ir.close(); - }+ int count = 0, numRead = 0;
+ char[] c1 = new char[ c0.length ];
+ tryUnknown macro: {+ while (count < c0.length)+ { + numRead = ir.read( c1, count, c0.length); + for( int i = count; + i < count+numRead; + assertTrue( "Byte " + i + " differs (" + c0[ i ] + " != " + c1[ i ] + ")", + c0[ i ] == c1[ i ] ), i++ + ); + count += numRead; + }+ }finally
{ + ir.close(); + }}
protected void checkWrite(OutputStream output) throws Exception {