Ver Mensaje Individual
  #13 (permalink)  
Antiguo 05/01/2007, 07:17
Langas
 
Fecha de Ingreso: enero-2007
Mensajes: 17
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: IllegalStateException en JSP

Bueno, ya está (casi todo) arreglado. Terminé el servlet, y el archivo se guarda en local correctamente. El problema (sí, siempre surge un nuevo problema) ahora es que el proceso de descarga es totalmente impredecible si el archivo a descargar es grande: en ocasiones todo va correctamente, y en otras falla de una de estas maneras: o bien ni siquiera salta el cuadro de diálogo de descarga, o bien salta pero al darle a "guardar" no sucede nada. El error que me aparece es:

ClientAbortException: java.net.SocketException: Connection reset by peer: socket write error

Se supone que este error aparece cuando se interrumpe la comunicación con el cliente (por ejemplo, al detener la carga de una página); pero no sé si puede ser por efecto de un timeout (no lo creo, el proceso dura en torno a 20 segundos), el caso es que, cuando falla, falla inmediatamente después de grabar el fichero en local, en el momento de empezar el proceso de descargarlo. En ocasiones, también aparece en los logs el mensaje "can not save body". El método que lanza la excepción es el siguiente:

private boolean dumpFile(String s, OutputStream outputstream)
{
byte abyte0[] = new byte[4096];
boolean flag = true;
try
{
FileInputStream fileinputstream = new FileInputStream(lookupFile(s));
int i;
while((i = fileinputstream.read(abyte0)) != -1)
{
outputstream.write(abyte0, 0, i);
}
fileinputstream.close();
}
catch(Exception exception)
{
flag = false;
}
return flag;
}

Esto se está volviendo más complicado por momentos. Uffffff. Gracias de antemano por vuestra atención. Un saludo.