RFR: 8026330: java.util.Base64 urlEncoder should omit padding

Alan Bateman Alan.Bateman at oracle.com
Fri Nov 8 14:00:47 UTC 2013


On 06/11/2013 18:44, Xueming Shen wrote:
> Hi,
>
> The latest spec and implementation of java.util.Base64.getXXXEncoder()
> is to add appropriate padding character(s) at the end of the output
> encoded data stream, to follow the note explicitly specified in the
> RFC
>
>    Implementations MUST include appropriate pad characters at the end
>    of encoded data unless the specification referring to this document
>    explicitly states otherwise.
>
> However the RFE also mentions that
>
>    In some circumstances, the use of padding ("=") in base-encoded data
>    is not required or used...
>
> Feedback so far also suggests that Base64.encoder without padding might
> be desired in some real world use scenario.
>
> So here is the webrev to add a new method to the Encoder class to return
> a non-padding version.
>
> http://cr.openjdk.java.net/~sherman/8026330/webrev
The API looks okay although some developers might not initially 
recognize that an Encoder is immutable. In particularly, this statement 
might not be clear:

   "This instance of encoder is unaffected by this invocation."

What you would think about including an example in the javadoc so that 
it's clear how to get an Encoder that doesn't emit padding?

Otherwise this looks good except that I wonder about needing to eagerly 
create all 6 Encoders.

So are you trying to get this into 8 or are you thinking of holding this 
to 9?

-Alan.







More information about the core-libs-dev mailing list