ObjectOutputStream reset gibt IOException

mabuhay

Bekanntes Mitglied
Hallo

Ich schreibe ein Object auf den ObjectOutputStream mehrmals hintereinander. Da es das gleiche Objekt ist aber mit anderem Inhalt brauche ich die reset()-methode des streams. Nun erhalte ich aber (manchmal) folgende Fehlermeldung:

Java:
java.io.IOException: stream active
	at java.io.ObjectOutputStream.reset(ObjectOutputStream.java:494)

In der JavaDoc von reset() steht folgendes:
Code:
IOException - if reset() is invoked while serializing an object.

Es scheint also also ob der stream noch am senden des Objektes ist zu der Zeit wo ich reset() aufrufe. Kann ich irgendwie testen ob der stream noch "beschäftigt" ist? Oder mach ich was anderes falsch?

Ich hab schon versucht das reset vor- und nach dem schreiben auf den Stream aufzurufen. Beides mal aber der selbe Fehler.

mfg
 
Kann mir vorstellen, dass du durch vernünftige hashCode, equals etc Implementierung auch ohne reset auskommen könntest.
 
Hallo

Kannst du mir einen Tipp geben in welche Richtung ich suchen muss? also wird beim Senden des Objektes mit der equals-Methode überprüft ob es das gleiche Objekt ist. Wenn ich dort also einen veränderlichen Hash-code einsetze würde es ohne Reset funktionieren?

mfg
 
nach google-Suche, API und Quellcode kommt diese Exception wenn gerade ein Objekt serialisiert wird,
in welchem Kontext rufst du reset() auf? gibt es mehrere Threads?

hashcode()/equals() zu verändern ist denkbar, aber nur auf deterministische Weise, also abhängig von geänderten Klassenattributen,
oder neue Objekte schicken
 

Neue Themen


Zurück
Oben