FILEUPLOAD-233 Base64Decoder doesn't correctly implement RFC 4648
Oops, initial rework of code was wrong.
Re-enabled failing tests

git-svn-id: https://svn.apache.org/repos/asf/commons/proper/fileupload/trunk@1458240 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/commons/fileupload/util/mime/Base64Decoder.java b/src/main/java/org/apache/commons/fileupload/util/mime/Base64Decoder.java
index 42264da..0f5369b 100644
--- a/src/main/java/org/apache/commons/fileupload/util/mime/Base64Decoder.java
+++ b/src/main/java/org/apache/commons/fileupload/util/mime/Base64Decoder.java
@@ -162,12 +162,13 @@
         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;
diff --git a/src/test/java/org/apache/commons/fileupload/util/mime/Base64DecoderTestCase.java b/src/test/java/org/apache/commons/fileupload/util/mime/Base64DecoderTestCase.java
index b6ef297..8ab0f8c 100644
--- a/src/test/java/org/apache/commons/fileupload/util/mime/Base64DecoderTestCase.java
+++ b/src/test/java/org/apache/commons/fileupload/util/mime/Base64DecoderTestCase.java
@@ -48,10 +48,10 @@
         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 {