Re: Jak deserializovat poškozená data?

2014-06-25 Tema obsahu Jaroslav Kačer

Dobrý večer,

hlásím, že tento přístup byl úspěšný. Hned po defaultReadObject() je ta 
instance plně funkční a lze na ní cokoliv normálně volat nebo třeba 
znovu serializovat. Obsluhou EOFException jsem se moc nezabýval, stačilo 
mi vytáhnout jen ty pod-objekty hlavního objektu, které byly 100% úspěšné.


A do jdeserialize jsem naštěstí nemusel šahat :-)

Ještě jednou díky!

Jarda

Dne 19.6.2014 10:47, Jiri Holy napsal(a):

Nezkoušel jsem to, ale první co mě napadá, je dělat tu deserializaci trochu víc 
manuálně. Co tím myslím: u těch datových tříd přetížit jejich metody pro 
čtení něčím jako:

private void readObject(java.io.ObjectInputStream stream) throws IOException, 
ClassNotFoundException {
try {
stream.defaultReadObject();
} catch (EOFException e) {
// a neco delat, lze predpokladat, ze nektere atributy teto 
tridy uz jsou deserializovane ...
}
}

Snad tenhle snippet ukazuje alespoň dobrým směrem.

Jiří Holý



--
Jaroslav Kačer

Prague, Czech Republic, EU
Mail:  jaros...@kacer.biz
Phone: +420.723.914.123


Re: Jak deserializovat poškozená data?

2014-06-19 Tema obsahu Jiri Holy
Nezkoušel jsem to, ale první co mě napadá, je dělat tu deserializaci trochu víc 
manuálně. Co tím myslím: u těch datových tříd přetížit jejich metody pro 
čtení něčím jako:

private void readObject(java.io.ObjectInputStream stream) throws IOException, 
ClassNotFoundException {
try {
stream.defaultReadObject();
} catch (EOFException e) {
// a neco delat, lze predpokladat, ze nektere atributy teto 
tridy uz jsou deserializovane ...
}
}

Snad tenhle snippet ukazuje alespoň dobrým směrem.

Jiří Holý

On 19/06/2014 8:28 a.m., Jaroslav Kačer wrote:
 Dobrý den!
 
 Mám soubor o velikosti několika MB, který obsahuje serializované javovské 
 objekty (bajtkód i zdrojáky mám). Problém je v tom, že tento soubor je z 
 nějakého důvodu useknutý, tudíž deserializace oprávněně skončí s výjimkou 
 EOFException.
 
 Chtěl bych z těch dat přečíst alespoň něco, co se dá. Nenapadá vás nějaký 
 způsob, jak o provést? Zkusil jsem například nástroj jdeserialize [1], ale 
 bohužel padá také.
 
 Celý obsah je jeden objekt, ve kterém jsou vnořeny další objekty, tudíž 
 nemůžu použít deserializaci po kouskách, kdy bych si načtený objekt někam 
 uložil a zkusil další. Je to jedno volání ObjectInputStream.readObject().
 
 Nemáte na to někdo nějaký fígl?
 
 Předem děkuji za jakýkoliv tip!
 
 Jarda
 
 
 [1] https://code.google.com/p/jdeserialize/
 
 


Re: Jak deserializovat poškozená data?

2014-06-19 Tema obsahu arsi

Caff,

No ak ti to stoji za tu namahu, tak tu je popis ako to cele funguje a je 
tam aj link na popis protokolu 
http://javapapers.com/core-java/java-serialization/


Ja by som si stiahol zdrojaky jdeserialize, tam je implementacia toho 
protokolu. Len to treba trocha ukecat ;) Napr. aby vnorene objekty co 
dekoduje, hned zapisoval cez xml serializaciu do suboru...




Arsi



*From:* Jaroslav Kačer jaros...@kacer.biz
*Sent:* Wednesday, June 18, 2014 10:28PM
*To:* Java
*Subject:* Jak deserializovat poškozená data?


Dobrý den!

Mám soubor o velikosti několika MB, který obsahuje serializované 
javovské objekty (bajtkód i zdrojáky mám). Problém je v tom, že tento 
soubor je z nějakého důvodu useknutý, tudíž deserializace oprávněně 
skončí s výjimkou EOFException.


Chtěl bych z těch dat přečíst alespoň něco, co se dá. Nenapadá vás 
nějaký způsob, jak o provést? Zkusil jsem například nástroj 
jdeserialize [1], ale bohužel padá také.


Celý obsah je jeden objekt, ve kterém jsou vnořeny další objekty, tudíž 
nemůžu použít deserializaci po kouskách, kdy bych si načtený objekt 
někam uložil a zkusil další. Je to jedno volání 
ObjectInputStream.readObject().


Nemáte na to někdo nějaký fígl?

Předem děkuji za jakýkoliv tip!

Jarda


[1] https://code.google.com/p/jdeserialize/












Re: Jak deserializovat poškozená data?

2014-06-19 Tema obsahu Jaroslav Kačer

Dobrý den,

děkuji oběma za odpovědi, vydám se asi nejdříve tím lehčím směrem s 
úpravou readObject(), pokud to nepomůže, začnu se hrabat v jdeserialize, 
i když se mi do toho teda vůbec nechce.


Pokud dojdu k nějakým rozumným výsledkům, tak je sem postnu.

Mějte se fajn,
 Jarda


Dne 19.6.2014 12:03, arsi napsal(a):

Caff,

No ak ti to stoji za tu namahu, tak tu je popis ako to cele funguje a je
tam aj link na popis protokolu
http://javapapers.com/core-java/java-serialization/

Ja by som si stiahol zdrojaky jdeserialize, tam je implementacia toho
protokolu. Len to treba trocha ukecat ;) Napr. aby vnorene objekty co
dekoduje, hned zapisoval cez xml serializaciu do suboru...



Arsi


--
Jaroslav Kačer

Prague, Czech Republic, EU
Mail:  jaros...@kacer.biz
Phone: +420.723.914.123


Jak deserializovat poškozená data?

2014-06-18 Tema obsahu Jaroslav Kačer

Dobrý den!

Mám soubor o velikosti několika MB, který obsahuje serializované 
javovské objekty (bajtkód i zdrojáky mám). Problém je v tom, že tento 
soubor je z nějakého důvodu useknutý, tudíž deserializace oprávněně 
skončí s výjimkou EOFException.


Chtěl bych z těch dat přečíst alespoň něco, co se dá. Nenapadá vás 
nějaký způsob, jak o provést? Zkusil jsem například nástroj 
jdeserialize [1], ale bohužel padá také.


Celý obsah je jeden objekt, ve kterém jsou vnořeny další objekty, tudíž 
nemůžu použít deserializaci po kouskách, kdy bych si načtený objekt 
někam uložil a zkusil další. Je to jedno volání 
ObjectInputStream.readObject().


Nemáte na to někdo nějaký fígl?

Předem děkuji za jakýkoliv tip!

Jarda


[1] https://code.google.com/p/jdeserialize/


--
Jaroslav Kačer

Prague, Czech Republic, EU
Mail:  jaros...@kacer.biz
Phone: +420.723.914.123