[Java lista] serialization

Böszörményi Péter zmblevlist at gmail.com
2008. Júl. 24., Cs, 19:18:19 CEST


Meg annyit fuznek hozza, hogy serialVersionUID generalasa nincs 
specifikalva, igy ugyanaz az osztaly kulonbozo gyartok vmjei alatt (mar 
ha a vm generalja a szamot, es nincs explicit megadva) kulonbozo 
serialVersionUIDt generalhatnak, ezert ajanljak az megadast.

Tamás Magyar wrote:
> Ha az adott kliens számára érdektelenül változik a class - pl. az
> általad említett eset, hogy új mezőt veszel fel a szerveren lévő class
> verzióban -, akkor nem lesz hiba a lefixált serialVersionUID -vel. Ezt
> tapasztalatból mondom - pont új mező felvételével próbáltam, Java 1.5
> Spring HttpInvoker környezetben -, de szerintem logikus is, hogy így
> működik.
> 
> A serialVersionUID egy védelem arra, hogy a szerializáló
> Classloaderben ugyanaz a verzió legyen, mint a deszerializálóban
> (hiszen ha belegondolsz, rengeteg zavar lehet ebből), de ha
> szándékosan kijátszod, az nem zavarja a szerializációs mechanizmust,
> legfeljebb Téged.
> 
> Azért ez a megoldás elég nagy odafigyelést igényel, mert ha elfelejted
> változtatni a serialVersionUID-t egy kliens számára is érdekes
> változásnál, akkor az oda is vezethet, hogy hibát nem dob a
> deszerializáció, viszont null értékű adattagok lesznek... az utódod
> meg debugolás közben majd emleget... :)
> 
> 
> Magyusz
> --
> I-Logic Kft.
> 
> 2008/7/24 Fisha <fisha at freemail.hu>:
>> Szia!
>>
>> Köszi a választ.
>>
>> Nem lesz belőle hiba, ha én kézzel nem léptetem, de közben meg - ha az adott
>> kliens számára érdektelenül is, de - változik a class?
>>
>> Üdv,
>>
>> Fisha                            mailto:fisha at freemail.hu
>>
>>> Azt javaslom, hogy adj meg (pl. Eclipse-szel generálj)
>>> serialVersionUID -t (pl. private static final long serialVersionUID =
>>> 6178037639795281122L;)
>>> és azt csak akkor változtasd, ha direkt szeretnéd, hogy szerializációs
>>> probléma legyen.
>>> Ha nem adsz meg serialVersionUID -t, akkor generálódik egy, ami más
>>> lesz, ha változnak a mezők.
>>> Magyusz
>>> --
>>> I-Logic Kft.
>>> 2008/7/24 Fisha <fisha at freemail.hu>:
>>>> Sziasztok
>>>> Adott egy EJB-s alkalmazás. Az EJB-s rétegben megváltozik egy osztály
>>>> (mondjuk kerül bele egy új mező vagy metódus). Van egy olyan kliense, aki
>>>> használja ugyan ezt az osztályt, de marhára nem érdekli ez az új mező.
>>>> Megoldható, hogy kliens jar csere nélkül se legyen serializációs probléma?
>>>> Előre is köszi a válaszokat!
>>>> Üdv,
>>>> Fisha                            mailto:fisha at freemail.hu
>>
>>>> _______________________________________________
>>>> Javalist mailing list
>>>> Javalist at javagrund.hu
>>>> http://javagrund.hu/mailman/listinfo/javalist
>>> _______________________________________________
>>> Javalist mailing list
>>> Javalist at javagrund.hu
>>> http://javagrund.hu/mailman/listinfo/javalist
>> _______________________________________________
>> Javalist mailing list
>> Javalist at javagrund.hu
>> http://javagrund.hu/mailman/listinfo/javalist
>>
>>
> _______________________________________________
> Javalist mailing list
> Javalist at javagrund.hu
> http://javagrund.hu/mailman/listinfo/javalist



További információk a(z) Javalist levelezőlistáról