You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Julius Davies (JIRA)" <ji...@apache.org> on 2010/03/28 19:17:27 UTC
[jira] Issue Comment Edited: (CODEC-99) Base64.encodeBase64String()
shouldn't chunk
[ https://issues.apache.org/jira/browse/CODEC-99?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12850694#action_12850694 ]
Julius Davies edited comment on CODEC-99 at 3/28/10 5:16 PM:
-------------------------------------------------------------
To respond to Gary, here is behaviour of Base64.encodeBase64Chunked(b) through all versions of commons-codec:
{code}
package playground;
import org.apache.commons.codec.binary.Base64;
public class Base64ChunkTest {
public static void main(String[] args) throws Exception {
byte[] b = args[0].getBytes("UTF-8");
b = Base64.encodeBase64Chunked(b);
String s = new String(b, "UTF-8");
s = s.replace("\n", "\\n").replace("\r", "\\r");
System.out.println(s);
}
}
{code}
{noformat}
$ java -cp build/classes:lib/commons-codec-1.1.jar playground.Base64ChunkTest Hello
SGVsbG8=\n
$ java -cp build/classes:lib/commons-codec-1.2.jar playground.Base64ChunkTest Hello
SGVsbG8=\n
$ java -cp build/classes:lib/commons-codec-1.3.jar playground.Base64ChunkTest Hello
SGVsbG8=\r\n
$ java -cp build/classes:lib/commons-codec-1.4.jar playground.Base64ChunkTest Hello
SGVsbG8=\r\n
{noformat}
Just to be clear, you want to change this now after 7 years (the files in the commons-codec-1.1.jar have '2003-04-29' timestamps)?
ps. I don't think '=' should be part of the equation, because valid data can encode and not have any '=' characters, for example the string '123':
{noformat}
$ java -cp build/classes:lib/commons-codec-1.4.jar playground.Base64ChunkTest 123
MTIz\r\n
{noformat}
was (Author: juliusdavies):
To respond to Gary, here is behaviour of Base64.encodeBase64Chunked(b) through all versions of commons-codec:
{code}
package playground;
import org.apache.commons.codec.binary.Base64;
public class Base64ChunkTest {
public static void main(String[] args) throws Exception {
byte[] b = args[0].getBytes("UTF-8");
b = Base64.encodeBase64Chunked(b);
String s = new String(b, "UTF-8");
s = s.replace("\n", "\\n").replace("\r", "\\r");
System.out.println(s);
}
}
{code}
{noformat}
$ java -cp build/classes:lib/commons-codec-1.1.jar playground.Base64ChunkTest Hello
SGVsbG8=\n
$ java -cp build/classes:lib/commons-codec-1.2.jar playground.Base64ChunkTest Hello
SGVsbG8=\n
$ java -cp build/classes:lib/commons-codec-1.3.jar playground.Base64ChunkTest Hello
SGVsbG8=\r\n
$ java -cp build/classes:lib/commons-codec-1.4.jar playground.Base64ChunkTest Hello
SGVsbG8=\r\n
{noformat}
> Base64.encodeBase64String() shouldn't chunk
> -------------------------------------------
>
> Key: CODEC-99
> URL: https://issues.apache.org/jira/browse/CODEC-99
> Project: Commons Codec
> Issue Type: Bug
> Affects Versions: 1.4
> Reporter: Julius Davies
> Attachments: codec-99-test-fixes.patch, codec-99-tests.patch, codec-99.patch
>
>
> Base64.encodeBase64String() shouldn't chunk.
> Change this:
> {code}
> public static String encodeBase64String(byte[] binaryData) {
> return StringUtils.newStringUtf8(encodeBase64(binaryData, true));
> }
> {code}
> To this:
> {code}
> public static String encodeBase64String(byte[] binaryData) {
> return StringUtils.newStringUtf8(encodeBase64(binaryData, false));
> }
> {code}
> This will fix the following tests ggregory added a few minutes ago:
> //assertEquals("Zg==", Base64.encodeBase64String(StringUtils.getBytesUtf8("f")));
> //assertEquals("Zm8=", Base64.encodeBase64String(StringUtils.getBytesUtf8("fo")));
> //assertEquals("Zm9v", Base64.encodeBase64String(StringUtils.getBytesUtf8("foo")));
> //assertEquals("Zm9vYg==", Base64.encodeBase64String(StringUtils.getBytesUtf8("foob")));
> //assertEquals("Zm9vYmE=", Base64.encodeBase64String(StringUtils.getBytesUtf8("fooba")));
> //assertEquals("Zm9vYmFy", Base64.encodeBase64String(StringUtils.getBytesUtf8("foobar")));
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.