Author: julius
Date: Fri Jan 21 19:39:11 2011
New Revision: 1061980

URL: http://svn.apache.org/viewvc?rev=1061980&view=rev
Log:
Fix for CODEC-101:  java.io.InputStreamReader hates it when 
InputStream.read(byte[]) returns a zero. (Adding an extra JUnit Test for good 
luck.)

Modified:
    
commons/proper/codec/trunk/src/test/org/apache/commons/codec/binary/Base64InputStreamTest.java

Modified: 
commons/proper/codec/trunk/src/test/org/apache/commons/codec/binary/Base64InputStreamTest.java
URL: 
http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/test/org/apache/commons/codec/binary/Base64InputStreamTest.java?rev=1061980&r1=1061979&r2=1061980&view=diff
==============================================================================
--- 
commons/proper/codec/trunk/src/test/org/apache/commons/codec/binary/Base64InputStreamTest.java
 (original)
+++ 
commons/proper/codec/trunk/src/test/org/apache/commons/codec/binary/Base64InputStreamTest.java
 Fri Jan 21 19:39:11 2011
@@ -17,8 +17,10 @@
 
 package org.apache.commons.codec.binary;
 
+import java.io.BufferedReader;
 import java.io.ByteArrayInputStream;
 import java.io.InputStream;
+import java.io.InputStreamReader;
 import java.util.Arrays;
 
 import junit.framework.TestCase;
@@ -65,6 +67,35 @@ public class Base64InputStreamTest exten
     }
 
     /**
+     * Another test for the CODEC-101 bug:
+     * In commons-codec-1.4 this test shows InputStreamReader explicitly 
hating an
+     * InputStream.read(byte[]) return of 0:
+     *
+     * java.io.IOException: Underlying input stream returned zero bytes
+     * at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:268)
+     * at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306)
+     * at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158)
+     * at java.io.InputStreamReader.read(InputStreamReader.java:167)
+     * at java.io.BufferedReader.fill(BufferedReader.java:136)
+     * at java.io.BufferedReader.readLine(BufferedReader.java:299)
+     * at java.io.BufferedReader.readLine(BufferedReader.java:362)
+     * at 
org.apache.commons.codec.binary.Base64InputStreamTest.testInputStreamReader(Base64InputStreamTest.java:75)
+     *
+     * But in commons-codec-1.5 it's fixed.  :-)
+     *
+     * @throws Exception for some failure scenarios.
+     */
+    public void testInputStreamReader() throws Exception {
+        byte[] codec101 = 
StringUtils.getBytesUtf8(Base64TestData.CODEC_101_MULTIPLE_OF_3);
+        ByteArrayInputStream bais = new ByteArrayInputStream(codec101);
+        Base64InputStream in = new Base64InputStream(bais);
+        InputStreamReader isr = new InputStreamReader(in);
+        BufferedReader br = new BufferedReader(isr);
+        String line = br.readLine();
+        assertNotNull("Codec101:  InputStreamReader works!", line);
+    }
+
+    /**
      * Test the Base64InputStream implementation against the special NPE 
inducing input
      * identified in the CODEC-98 bug.
      *


Reply via email to