Foro sobre Java SE > Error en serialización de objetos
¿No te lanza alguna de las excepciones propias de ese método?
http://download.java.net/jdk7/archive/b123/docs/api/java/io/ObjectInputStream.html#readObject()
Puedes probar a capturarlas todas, y ver qué pasa.
Hola,
Ya probé a capturar cualquiera de las posibles excepciones que emite, y no devuelve nada. Lo que veo es que salta directamente al FINALLY cuando falla en el readObject(), sin más notificación.
Algo se me escapa... no lanza excepciones, y la aplicación se cuelga.
A menos que haya un bucle infinito, esté esperando indefinidamente (lo que no parece que sea el caso, puesto que salta al finally), haya un deadlock entre tareas, o haya un wait esperando por un notify posterior (sobre el mismo monitor) en la misma tarea... no me explico la razón de ese "cuelgue".
Quiza el objeto a serializar contiene referencias circulares
Me expresé mal... el resultado tras hacer el readObject(), es que abra una ventana con el informe generado (el InfoProceso es un objeto que almacena los datos del proceso ejecutado, en este caso, la emisión del informe). Pues el comportamiento es que no consigue abrirse dicha ventana emergente.
Esto lo he detectado en mi aplicación a raíz de actualizar la versión de JasperReports, de la 0.5 a la 4.1.2... Es un cambio grande, pero entiendo que esto debería comportarse como siempre, ya que la serialización del objeto no ha cambiado, ni el contenido de lo que devuelve.
Esa ventana se abre según que alguna condición se cumpla, es de suponer.
Creo que deberías usar un Debugger, o poner las trazas de siempre en el mismo código ( los habituales System.out.println), para poder determinar qué bloquea la apertura de dicha ventana. Lo más habitual es que haya un valor null en el constructor de la ventana, donde no debería haberlo, suponiendo que se hayan cumplido las condiciones de creación y apertura de la misma.
Hola,
Estoy intentando llevar a cabo la serialización de un objeto. Necesito serializar un objeto propio, InfoProceso, formado por atributos de tipos básicos, fundamentalmente. En el primer paso, de cliente a servidor, se realiza correctamente, enviando el InfoProceso tal cual es creado. Ya en el servidor, se realizan una serie de cambios que afectan a uno de los campos, y se realiza el envio al cliente de nuevo.
El problema llega en el cliente: al intentar leer de esta forma:
InfoProceso objetoRetorno = (InfoProceso)ois.readObject();
la aplicación se queda colgada. Revisando todos los logs posibles, no se observa que emita excepción alguna. He intentado capturar las excepciones que puede generar, pero tampoco veo resultado. ¿Alguna idea?
Por supuesto, el InfoProceso es serializable ;)