You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by se...@apache.org on 2013/03/19 13:18:40 UTC
svn commit: r1458240 - in /commons/proper/fileupload/trunk/src:
main/java/org/apache/commons/fileupload/util/mime/Base64Decoder.java
test/java/org/apache/commons/fileupload/util/mime/Base64DecoderTestCase.java
Author: sebb
Date: Tue Mar 19 12:18:39 2013
New Revision: 1458240
URL: http://svn.apache.org/r1458240
Log:
FILEUPLOAD-233 Base64Decoder doesn't correctly implement RFC 4648
Oops, initial rework of code was wrong.
Re-enabled failing tests
Modified:
commons/proper/fileupload/trunk/src/main/java/org/apache/commons/fileupload/util/mime/Base64Decoder.java
commons/proper/fileupload/trunk/src/test/java/org/apache/commons/fileupload/util/mime/Base64DecoderTestCase.java
Modified: commons/proper/fileupload/trunk/src/main/java/org/apache/commons/fileupload/util/mime/Base64Decoder.java
URL: http://svn.apache.org/viewvc/commons/proper/fileupload/trunk/src/main/java/org/apache/commons/fileupload/util/mime/Base64Decoder.java?rev=1458240&r1=1458239&r2=1458240&view=diff
==============================================================================
--- commons/proper/fileupload/trunk/src/main/java/org/apache/commons/fileupload/util/mime/Base64Decoder.java (original)
+++ commons/proper/fileupload/trunk/src/main/java/org/apache/commons/fileupload/util/mime/Base64Decoder.java Tue Mar 19 12:18:39 2013
@@ -162,12 +162,13 @@ final class Base64Decoder {
if (p1 != PADDING) { // Nothing more to do if p1 == PADDING
// CHECKSTYLE IGNORE MagicNumber FOR NEXT 1 LINE
out.write((b2 << 4) | (b3 >> 2)); // 4 bits of b2 plus 4 bits of b3
- outLen++;
- } else if (p2 != PADDING) { // Nothing more to do if p2 == PADDING
- b4 = DECODING_TABLE[p2];
- // CHECKSTYLE IGNORE MagicNumber FOR NEXT 1 LINE
- out.write((b3 << 6) | b4); // 2 bits of b3 plus 6 bits of b4
- outLen++;
+ outLen++;
+ if (p2 != PADDING) { // Nothing more to do if p2 == PADDING
+ b4 = DECODING_TABLE[p2];
+ // CHECKSTYLE IGNORE MagicNumber FOR NEXT 1 LINE
+ out.write((b3 << 6) | b4); // 2 bits of b3 plus 6 bits of b4
+ outLen++;
+ }
}
return outLen;
Modified: commons/proper/fileupload/trunk/src/test/java/org/apache/commons/fileupload/util/mime/Base64DecoderTestCase.java
URL: http://svn.apache.org/viewvc/commons/proper/fileupload/trunk/src/test/java/org/apache/commons/fileupload/util/mime/Base64DecoderTestCase.java?rev=1458240&r1=1458239&r2=1458240&view=diff
==============================================================================
--- commons/proper/fileupload/trunk/src/test/java/org/apache/commons/fileupload/util/mime/Base64DecoderTestCase.java (original)
+++ commons/proper/fileupload/trunk/src/test/java/org/apache/commons/fileupload/util/mime/Base64DecoderTestCase.java Tue Mar 19 12:18:39 2013
@@ -48,10 +48,10 @@ public final class Base64DecoderTestCase
assertEncoded("", "");
assertEncoded("f", "Zg==");
assertEncoded("fo", "Zm8=");
- // assertEncoded("foo", "Zm9v");
+ assertEncoded("foo", "Zm9v");
assertEncoded("foob", "Zm9vYg==");
assertEncoded("fooba", "Zm9vYmE=");
- // assertEncoded("foobar", "Zm9vYmFy");
+ assertEncoded("foobar", "Zm9vYmFy");
}
private static void assertEncoded(String clearText, String encoded) throws Exception {