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 14:59:13 UTC 2013


On 01/02/2013 14:35, Mark Sheppard wrote:
>
> Hi Alan,
>
> I think it would be useful to convey some additional information 
> relating the cause of the problem, even for diagnostic purposes.
>
> So analogous to CharacterEncodingException which exists for Charsets, 
> providing a Base64EncodingException
> and Baes64DecodingException as derived from IOException, (as alluded 
> to previously by Sherman,) could/would be useful.
> However, as the underlying encapsulating 
> InputStream/FilterOutputStream is no exposed, and hence the overridden
> read/write methods publicly defined, how would such exceptions be 
> reconciled against the generalized Output/InputStream returned by wrap()?
>
> Alternatively, perhaps throwing an IOException with an embedded 
> Base64Encoding/DecodingException could also be used ?
The exception message is detailed/useful already, it's just whether this 
needs a specialized IOException or an appropriate cause. If there are 
good reasons to recover differently to other I/O exceptions then it may 
make sense. The other useful thing about a specialized exception is that 
it could carry more context, like the line or position where the stream 
is corrupted.

-Alan.



More information about the core-libs-dev mailing list