No es la respuesta
No puede mantener los bytes de una imagen en una Cadena (correctamente). Primero podría codificar el byte[]
usando Base64 en una cadena. Tal vez aunque entendí mal, y lo hiciste correctamente. Compruebe que registró todas las excepciones.
Hay algunas otras conversiones de Base64 además de la versión obsoleta de Sun (que no está disponible en todos los JDK). En JavaEE:
import javax.xml.bind.DatatypeConverter;
String data = "...";
byte[] bytes = DatatypeConverter.parseBase64Binary(data);
String data = DatatypeConverter.parseBase64Binary(bytes);
¿No puede almacenar los datos como blob binario, sin codificación base64? Al menos ahorraría espacio.
Otro error podría ser el crecimiento de ByteArray reutilizado o algún otro error trivial.