---
title: "Objekt som skickas via ObjectOutputStream uppdateras inte?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/java/87652-objekt-som-skickas-via-objectoutputstream-uppdateras-inte"
topic: "Java"
topic_url: "https://www.webforum.nu/amne/java"
author: "kallepocket"
published: "2003-10-04T23:05:59.000Z"
updated: "2003-10-04T23:34:19.000Z"
replies: 1
views: 177
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/java/87652-objekt-som-skickas-via-objectoutputstream-uppdateras-inte"
---

# Objekt som skickas via ObjectOutputStream uppdateras inte?

## #1 — kallepocket, 2003-10-04T23:05Z

När jag skickar ett objekt över nätverk (med ObjectOutputStream) går det jättebra första gången, men när servern andra gången skickar exakt samma objekt så följer inga ändringar i objektet med till klienten.

Om jag exv har skapat ett rum med namnet "test1" och skickar det objektet till klienten, och sedan ändrar namnet till "test2" och skickar objektet igen, så kommer klienten inte att få det nya namnet, utan objektet som den mottar ser ut som det "gamla" objektet.

Det verkar som om den bara skickar en referens till objektet när klienten redan har det eller något.

Hur kommer man runt detta?

(Objektet är såklart Serialiazable, och skickas och tas emot med ObjectOutputStrean vs. ObjectInputStream)

/Anders

Permalänk: https://www.webforum.nu/p/87652

## #2 — kallepocket, 2003-10-04T23:34Z

Hmm, hittade lösningen själv.

Som jag misstänkte håller både ObjectOutputStream och ObjectInputStream reda på vilka objekt som redan skickats/tagits emot, så de ger bara referensen till det objektet i såna fall.

För att gå runt detta problem måste någon av dem nollställas innan man kan skicka över samma objekt igen. Like this:

```
final OutputStream out = sock.getOutputStream();
final ObjectOutputStream oout = new ObjectOutputStream(out);

Room room = new Room("hej");

oout.writeObject(room);
oout.flush();

room.setName("hejdå");

//För att skicka det uppdaterade rummet måste oout nollställas

oout.reset();

oout.writeObject(room);
oout.flush();
```

Så man nollställer alltså med oout.reset() innan man ska skicka objektet på nytt.

Permalänk: https://www.webforum.nu/p/1174885

---

Tråden på webben: https://www.webforum.nu/amne/java/87652-objekt-som-skickas-via-objectoutputstream-uppdateras-inte
