Moien
Wir haben ein Problem: Wir schreiben grade ein Javaprojekt und
verwenden dabei ObjectInput- und Outputstreams.
Die ObjectStreams alleine sind schon ein Problem.
Aber wir
bekommen nach der Zeit Probleme beim Empfangen. Wir bekommen
andere Daten an als wir senden.
ObjectStreams cachen. Das macht sie so unheimlich beliebt. Beispiel:
Object1.setValue (5);
stream.writeObject (Object1);
Object1.setValue (4);
stream.writeObject (Object1);
erzeugt 2x Object1 mit Value = 5 auf der anderen Seite. Die 4 geht verloren. Die Streams schreiben jedes Object nur einmal, egal ob sich sein Zustand geändert hat oder nicht. Dafür gibt es ObjectOutputStream.reset().
Der Fehler beim Client der dadurch resultiert:
java.io.streamCorruptedExeption: unknown Source: invalid typ
Code 30
Das hört sich eher nach einem Problem mit den class-Dateien an. Nach jeder Änderung, egal wie winzig sie auch war, müssen alle class-Dateien auf allen Rechnern ausgetauscht werden. Läst man eine alte class Datei stehen können gar unlustige Dinge passieren.
Kann man Java nicht
einfach sagen, ignoriere diesen Fehler
Doch, kann man. Aber falls irgendwas sinnvolles bei rumkommen soll …
cu