src/share/classes/java/util/Base64.java

Print this page

        

*** 694,704 **** /** * Decodes a Base64 encoded String into a newly-allocated byte array * using the {@link Base64} encoding scheme. * * <p> An invocation of this method has exactly the same effect as invoking ! * {@code return decode(src.getBytes(StandardCharsets.ISO_8859_1))} * * @param src * the string to decode * * @return A newly-allocated byte array containing the decoded bytes. --- 694,704 ---- /** * Decodes a Base64 encoded String into a newly-allocated byte array * using the {@link Base64} encoding scheme. * * <p> An invocation of this method has exactly the same effect as invoking ! * {@code decode(src.getBytes(StandardCharsets.ISO_8859_1))} * * @param src * the string to decode * * @return A newly-allocated byte array containing the decoded bytes.
*** 1012,1024 **** int[] base64 = isURL ? fromBase64URL : fromBase64; int paddings = 0; int len = sl - sp; if (len == 0) return 0; ! if (len < 2) throw new IllegalArgumentException( "Input byte[] should at least have 2 bytes for base64 bytes"); if (src[sl - 1] == '=') { paddings++; if (src[sl - 2] == '=') paddings++; } --- 1012,1027 ---- int[] base64 = isURL ? fromBase64URL : fromBase64; int paddings = 0; int len = sl - sp; if (len == 0) return 0; ! if (len < 2) { ! if (isMIME && base64[0] == -1) ! return 0; throw new IllegalArgumentException( "Input byte[] should at least have 2 bytes for base64 bytes"); + } if (src[sl - 1] == '=') { paddings++; if (src[sl - 2] == '=') paddings++; }