Problemas al cerrar Zips

Hola imorenohojas.
Puede parecer un poco tonto, pero no consigo cerrar un Zip.
Te cuento, intento generar un Zip pero al cerrarlo sin que tenga contenido, salta la excepción y no puedo cerrarlo, si el zip tiene contenido, no hay problemas, el fallo esta al intentar cerrarlo sin contenido.
El proceso de cerrado es como sigue:
it = zipInterfacesMQ.values().iterator();
while (it.hasNext()) {
HashMap setInterfaces =(HashMap)it.next();
Iterator itInterfaces= setInterfaces.keySet().iterator();
while (itInterfaces.hasNext())
{
String interf=(String)itInterfaces.next();
OutputStream zipInterfaceOS = (
ZipOutputStream)setInterfaces.get(interf);
zipInterfaceOS.flush();
try {
log.debug("iniciamos cerrado");
zipInterfaceOS.close();
log.debug("cerrado");
} catch(ZipException e)
{
//Nada que hacer. Si el fichero no tiene ninguna
//entrada (vacío), salta excepció
}
}
}
Estaría muy agradecido si pudieras indicarme alguna idea de cómo solucionar este problema.
Muchas gracias.
Respuesta
1
La clase ZipOutputStream en el método finish() lanza una excepción siempre que no hay documentos, esto es inevitable, ya que es una parte del núcleo java.
Así que la única forma de evitarlo es comprobar antes de crearlo si va a tener o no documentos. Parece que esto lo realizan los while, pero es posible que el objeto zipInterfacesMQ (que supongo que extiende de un HashMap) contenga objetos vacíos, y por consiguiente tenga datos, nulos, pero datos al fin y al cabo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas