# ObjectOutputStream reset gibt IOException



## mabuhay (4. Nov 2010)

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.io.IOException: stream active
	at java.io.ObjectOutputStream.reset(ObjectOutputStream.java:494)
```

In der JavaDoc von reset() steht folgendes:

```
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


----------



## XHelp (4. Nov 2010)

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


----------



## mabuhay (5. Nov 2010)

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


----------



## SlaterB (5. Nov 2010)

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


----------



## mabuhay (6. Nov 2010)

SlaterB hat gesagt.:


> in welchem Kontext rufst du reset() auf? gibt es mehrere Threads?



Ja stimmt... sind jetzt synchronized. Ein Test mit mehreren Threads welche jeweils mehrmals auf den Stream schreiben verläuft nun ohne Problem. Habe irgendwie angenommen dass write-Methoden etc. sowieso synchronized sind...

thx


----------

