Hola, os comunico un nuevo error que he detectado al probar CryptoApplet en
Firefox 3.0.5 de ubuntu.
El problema viene cuando se firma la segunda vez sin haber cerrado el navegador
(el applet no se vuelve a reiniciar). Parece que es problema de la librería
netscape.jar, que es de donde salen los objetos JSObject.
Me lanza una CastException en el método de la clase URLOutputParams
public void setSignData(byte[] data) throws IOException
{
.............
JSObject browser = (JSObject) JSObject.getWindow(_base);
JSObject document = (JSObject) browser.getMember("document");
. ..
}
El error de conversion se produce al intentar obtener el objeto document, pues
browser.getMember("document");
devuelve un STRING.
Para conseguir ver este error tuve que añadir en la clase SignatureThread un
ex.printBacktrace() como os muestro a continuación en el método RUN, ya que la
excepción se encuentra camuflada cuando se intenta ejecutar
outputParams.setSignData(sig); ya que se lanza una nueva en el catch y se
pierde la pista sobre la traza del error real. (Tal vez podría ser interesante
modificar la clase SignatureAppletException para que soporte las nested
Exceptions y así poder seguir la traza completa)
_mw.getGlobalProgressBar().setValue(_ini_percent +
7*inc);
if ( sig != null )
try{
outputParams.setSignData(sig);
}
catch(Exception e){
System.out.println
("====================================");
System.out.println
("====================================");
System.out.println
("====================================");
System.out.println
("====================================");
System.out.println
("====================================");
System.out.println ("DEPURANDO EN
UBUNTU");
e.printStackTrace();
System.out.println
("====================================");
System.out.println
("====================================");
System.out.println
("====================================");
System.out.println
("====================================");
System.out.println
("====================================");
System.out.println
("====================================");
System.out.println
("====================================");
throw new
SignatureAppletException("ERROR_CANNOT_SET_OUTPUT_DATA");
}
Un saludo.
_______________________________________________
CryptoApplet mailing list
[email protected]
http://llistes.uji.es/mailman/listinfo/cryptoapplet