Ayuda con una excepcion

nac
13 de Septiembre del 2002
En una aplicacion me aparece esta excepcion

java.io.InvalidClassException: "nombre de la clase"; Local class not compatible: stream classdesc serialVersionUID="nº identificador negativo" local class serialVersionUID="nº identificador negativo distinto del anterior"

¿Alguien sabe pq puede suceder esto?

El problema se da cuando intento leer un objeto de un array de datos

Anartz
13 de Septiembre del 2002
Te pongo la respuesta oficial que nos da Java:

"public class InvalidClassException
extends ObjectStreamException

Thrown when the Serialization runtime detects one of the following problems with a Class.

- The serial version of the class does not match that of the class descriptor read from the stream
- The class contains unknown datatypes
- The class does not have an accessible no-arg constructor "

marccis
13 de Septiembre del 2002
Yo tuve el mismo problema, pero no se si en la misma situacion. Tenia una clase RMI que devolvia un cierto objeto serializable, y desde otra clase invocaba el metodo remoto para obtener el objeto. Pues recibia esta excepcion cuando la clase del objeto la habia recompilado y solo habia recompilado el servidor rmi y no la clase que invocaba el metodo remoto. Recompilando la clase RMI i la clase cliente cada vez que modificaba la clase serializable.
O sea que intentes recompilarlo todo aver si se soluciona.

nac
13 de Septiembre del 2002
Ya lo he resuelto, gracias. Pasaba algo parecido. En base de datos tenia objetos guardados de una clase. esa clase la modifique y la recompile, y al intentar extrer el objeto serializable de la base de datos detectaba q el serialversion generado era otro saltaba la excepcion...
Utilice el serialver.exe (o un nombre parecido) que habia en la jdk para ver el idetificador de las clases, y comprobe que lo s valores q daba la excepcion se correspondian a la version actual de la clase y a la de la anterior.