From ba73cc55df618dbf2955fce3d2450f2842da7419 Mon Sep 17 00:00:00 2001 From: Michael Bayne Date: Mon, 2 Jun 2003 17:24:18 +0000 Subject: [PATCH] Deal as gracefully as possible if we don't have any data for the final field or fields of a streamed object. This allows us to add new fields to the end of a streamable without causing all existing serialized versions to become unreadable. git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2629 542714f4-19e9-0310-aa3c-eee0fc999fb1 --- src/java/com/threerings/io/Streamer.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/java/com/threerings/io/Streamer.java b/src/java/com/threerings/io/Streamer.java index 4466a6db8..1d69f96fe 100644 --- a/src/java/com/threerings/io/Streamer.java +++ b/src/java/com/threerings/io/Streamer.java @@ -1,5 +1,5 @@ // -// $Id: Streamer.java,v 1.6 2003/04/10 17:47:45 mdb Exp $ +// $Id: Streamer.java,v 1.7 2003/06/02 17:24:18 mdb Exp $ package com.threerings.io; @@ -324,7 +324,15 @@ public class Streamer Log.info(in.hashCode() + ": Reading field '" + field.getName() + "'."); } - fm.readField(field, object, in); + // gracefully deal with objects that have had new fields + // added to their class definition + if (in.available() > 0) { + fm.readField(field, object, in); + } else { + Log.info("Streamed instance missing field (probably " + + "newly added) [class=" + _target.getName() + + ", field=" + field.getName() + "]."); + } } catch (Exception e) { Log.logStackTrace(e); String errmsg = "Failure reading streamable field " +