3 Dias me tomo resolver este problema aca en mi blog. Estaba escribiendo un articulo largo cuando empece a tener problemas obteniendo la data de la base de datos. Los campos LONGTEXT se estaban truncando en el SELECT! a un maximo de 4096 chars.

Navegando un poco a traves del problema chequee el insert del mysql (antes me habia pasado que si no hacia el insert con un prepared statement y algunos streams de data no inserta mas de 4000 caracteres) pero no era eso finalmente, luego me fije en mi bean-to-XML parser (XStream) a ver si estaba truncando la data pero tampoco era. XStream esta buenisimo, usa SAX para escribir a un outputstream y por eso no tiene un limite predeterminado. Finalmente llegue a la capa del Javascript donde pense que el objeto XMLHTTPRequest no permitia nodos con mas de 4096 chars, pero tampoco era eso. El XML de resultado estaba OK.

Iluminado no se porque me di cuenta que funcionaba bien en IE y no en Firefox, entonces empece a diggear un poco ahi. Encontre que Mr Firefox corta los nodos con mas de 4096 caracteres en N nodos con un maximo de 4096 caracteres.

Solucion ? Facil

xmlDocument.normalize()  //ONLY IF FIREFOX, doesnt work on IE

Y la solucion para los que quieren escribir mas y no hacer el isFirefox || isInternetExplorer…

xmlDocument.getElementsByTagName("mytag")[0].nodeValue
xmlDocument.getElementsByTagName("mytag")[1].nodeValue
xmlDocument.getElementsByTagName("mytag")[n].nodeValue

Cada uno de los elementos del array va a contener un total de data de hasta un maximo de 4096 caracteres.