Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

flux corrompu ObjectInputStream

4 réponses
Avatar
phil89
Bonsoir

J'utilise le ObjectInputStream pour lire des objets serialise.
Suite a une modif de la classe Java j'ai le message d'erreur
java.io.EOFException
at java.io.ObjectInputStream$BlockDataInputStream.readFully(Unknown
Source)

J'avais deja force la version de la serialisation
par static final long serialVersionUID = -4985468851619198320L;

Il semble que les deux premiers octets du flux gere la longueur de
l'objet ?
Existe t il un traitement pour bypasser ces deux premiers octets ?

Merci d'avance
Philippe

4 réponses

Avatar
phil89
C'est le fait d'ajouter une declaration de int non transient qui pose
probleme
Avatar
TestMan
C'est le fait d'ajouter une declaration de int non transient qui pose
probleme


Bonjour,

Logique, si vous dites "je rajoute un int à sérialiser" mais "la
structure à sérialiser n'a pas changée" et "non je ne gére pas non-plus
la compatibilité ascendante en manuel par du code read/writeObject
qui-va-bien" ... c'est une voie sans issue ;-)

A+
TM

Avatar
phil89
On 18 mar, 10:08, TestMan wrote:

C'est le fait d'ajouter une declaration de int non transient qui pose
probleme


Bonjour,

Logique, si vous dites "je rajoute un int à sérialiser" mais "la
structure à sérialiser n'a pas changée" et "non je ne gére pas non -plus
la compatibilité ascendante en manuel par du code read/writeObject
qui-va-bien" ... c'est une voie sans issue ;-)

A+
TM


Bonjour

Effectivement le reste de la structure n'a pas changé.
Je n'ai effectivement pas fait de Read Write entre deux objets.
La serialisation XML est d'apres mes lectures beaucoup plus lente
Auriez vous une autre idée

A+
Philippe


Avatar
TestMan
On 18 mar, 10:08, TestMan wrote:

C'est le fait d'ajouter une declaration de int non transient qui pose
probleme
Bonjour,


Logique, si vous dites "je rajoute un int à sérialiser" mais "la
structure à sérialiser n'a pas changée" et "non je ne gére pas non-plus
la compatibilité ascendante en manuel par du code read/writeObject
qui-va-bien" ... c'est une voie sans issue ;-)

A+
TM


Bonjour

Effectivement le reste de la structure n'a pas changé.
Je n'ai effectivement pas fait de Read Write entre deux objets.
La serialisation XML est d'apres mes lectures beaucoup plus lente
Auriez vous une autre idée

A+
Philippe


Bonjour,

Je reformule ma réponse pour qu'elle vous soit plus "limpide" :

Votre structure a changée (rajoute de int) => sérialisation automatique
ne marchera plus car il y a un champ en plus d'un coté dont l'autre ne
sait que faire.

Alors, soit vous rétablissez la parité des deux coté du "fil" (avec un
identifiant de série automatique), soit vous gérez la différence (cf.
surcharge des méthodes de sérialisation).

Bon code ;-)

A+
TM