probleme de sérialisation - Java - Programmation
Marsh Posté le 29-01-2004 à 21:37:52
ton test de tout à l'heure est tjs valide? (flemme de faire un copier/coller) ?
Marsh Posté le 29-01-2004 à 21:40:10
sur mon bsd ça bloque apres "generatin keypair"
Marsh Posté le 29-01-2004 à 21:59:14
the real moins moins a écrit : ton test de tout à l'heure est tjs valide? (flemme de faire un copier/coller) ? |
oui mais il fait des choses inutiles (la signature)
Marsh Posté le 29-01-2004 à 22:00:14
the real moins moins a écrit : sur mon bsd ça bloque apres "generatin keypair" |
alors copie/colle cet exemple
Marsh Posté le 29-01-2004 à 22:11:08
|
Marsh Posté le 30-01-2004 à 08:13:17
the real moins moins a écrit :
|
merci, mais j'ai bien vu qu'avec une jvm>=1.4.1 ca donne ca.
la question, c'est pourquoi ? ou est l'erreur ?
Marsh Posté le 30-01-2004 à 08:38:41
bon, j'ai trouver comment le contourner, mais ca m'intrigue quand même...
Marsh Posté le 30-01-2004 à 13:09:21
lorill a écrit : bon, j'ai trouver comment le contourner, mais ca m'intrigue quand même... |
comment ?
Marsh Posté le 30-01-2004 à 13:28:15
the real moins moins a écrit : comment ? |
mon soucis a la base c'est de signer ce qui est envoyé, pour m'assurer que c'est bien la personne déclarée comme emetteur qui envoie.
la, je serialisait l'objet et je signait les octets résultats. Vu que visiblement 2 sérialisations d'un objet identique ne me garantissent pas les mêmes octets, je ne fais plus la signature sur les octets de l'objet sérialisés, mais sur le résultat d'une méthode de mes objets.
voila.
Marsh Posté le 29-01-2004 à 20:47:55
bon, rapide récapitulatif du probleme :
J'ai un objet qui contient une HashMap.
Je sérialise cet objet. Je le récupere par désérialisation. Je le resérialise, et dans certains cas, le résultat de la sérialisation est différent, suivant la version de la jvm semble-t'il.
Le code qui montre le probleme :
L'objet sérialisé : CalendarAction
Le programme de test :
Ce que ca donne :
vincent@laptop:/tmp$ diff test_end_*
vincent@laptop:/tmp$ diff test_endTime_*
Les fichiers binaires test_endTime_.1 et test_endTime_.2 sont différents.
vincent@laptop:/tmp$ diff test_plop_*
vincent@laptop:/tmp$
avec un jdk1.4.2 ou 1.4.1, ca merde bien avec "endTime" en clef de la HashMap.
avec un jdk1.4.0 par contre, ca marche avec "endTime" mais ca plante avec "end".
Quelqu'un a une idée ?