Codereview request for 8006295: Base64.Decoder.wrap(java.io.InputStream) returns InputStream which throws unspecified IOException on attempt to decode invalid Base64 byte stream

Alan Bateman Alan.Bateman at oracle.com
Fri Feb 1 09:34:53 UTC 2013


On 31/01/2013 22:15, Xueming Shen wrote:
> Hi,
>
> Obviously ioe is not an appropriate exception for invalid base64 bytes,
> and it's inconsistent with the rest of decode methods, as the submitter
> suggested.
> The change is to explicitly specify (as other decoding methods do) that
> IAE will be thrown if the input stream contains invalid base64 bytes. The
> impl is also updated according.
>
> Please help review.
>
> http://cr.openjdk.java.net/~sherman/8006295/webrev/
I don't think IAE is right here as the problem is not with the argument 
passed to the InputStream read method. The simplest thing is probably to 
just make it clear in the wrap's javadoc that the reading from the 
InputStream will throw IOException if bytes, that are not in a valid 
base64 scheme, are encountered. This would be consistent with say, 
reading from a BufferedReader where malformed or unmappable characters 
are encountered (assuming it is created with a charset decoder that is 
configured to report errors of course).

-Alan



More information about the core-libs-dev mailing list