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

Responder a