Насколько я знаю, Base64DecoderStream принимает InputStream, а не байтовый массив. Как минимум, вам нужно изменить декодирование следующим образом:
ByteArrayInputStream contentStream = new ByteArrayInputStream(base64Content.getBytes());
BASE64DecoderStream decodeStream = new BASE64DecoderStream(contentStream);
int decodedByte
while ((decodedByte = read()) != -1) {
// handled decoded bytes
}
Возможно, автобокс пытается вам помочь, и создание некоторого "промежуточного" массива мешает работе. Или, может быть, ваше сообщение достаточно велико, и массив не может быть создан достаточно большим. Или, может быть, у вас есть два потока, вызывающих статическое предложение, которое портит внутренние общие буферы.