Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
1.4
-
None
Description
The instance encode() method (e.g. new Base64().encode()) appends a CRLF. Actually it's fully chunking the output into 76 character lines. Commons-Codec-1.3 did not do this. The static Base64.encodeBase64() method behaves the same in both 1.3 and 1.4, so this problem only affects the instance encode() method.
import org.apache.commons.codec.binary.*; public class B64 { public static void main(String[] args) throws Exception { Base64 b64 = new Base64(); String s1 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; String s2 = "aaaaaaaaaa"; String s3 = "a"; byte[] b1 = s1.getBytes("UTF-8"); byte[] b2 = s2.getBytes("UTF-8"); byte[] b3 = s3.getBytes("UTF-8"); byte[] result; result = Base64.encodeBase64(b1); System.out.println("[" + new String(result, "UTF-8") + "]"); result = b64.encode(b1); System.out.println("[" + new String(result, "UTF-8") + "]"); result = Base64.encodeBase64(b2); System.out.println("[" + new String(result, "UTF-8") + "]"); result = b64.encode(b2); System.out.println("[" + new String(result, "UTF-8") + "]"); result = Base64.encodeBase64(b3); System.out.println("[" + new String(result, "UTF-8") + "]"); result = b64.encode(b3); System.out.println("[" + new String(result, "UTF-8") + "]"); } }
Here's my output:
$ java -cp commons-codec-1.3.jar:. B64 [YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYQ==] [YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYQ==] [YWFhYWFhYWFhYQ==] [YWFhYWFhYWFhYQ==] [YQ==] [YQ==] $ java -cp commons-codec-1.4.jar:. B64 [YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYQ==] [YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYQ== ] [YWFhYWFhYWFhYQ==] [YWFhYWFhYWFhYQ== ] [YQ==] [YQ== ]
Attachments
Attachments
Issue Links
- is duplicated by
-
CODEC-97 Base64 default constructor behaviour changed to enable chunking in 1.4
- Closed
1.
|
Add tests to check that encodeBase64() does not chunk output | Closed | Unassigned |