From 2ca523263718b705a9578e15cdc42c98f3f68c0f Mon Sep 17 00:00:00 2001 From: hns Date: Tue, 20 Nov 2001 17:01:55 +0000 Subject: [PATCH] Increased serialization version to 7. String properties are now serialized as objects, because there seems to be a limit around 60000 chars for UTF. --- src/helma/objectmodel/db/Node.java | 2 +- src/helma/objectmodel/db/Property.java | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/helma/objectmodel/db/Node.java b/src/helma/objectmodel/db/Node.java index 285406d2..4b4d2697 100644 --- a/src/helma/objectmodel/db/Node.java +++ b/src/helma/objectmodel/db/Node.java @@ -107,7 +107,7 @@ public final class Node implements INode, Serializable { * Write out this instance to a stream */ private void writeObject (ObjectOutputStream out) throws IOException { - out.writeShort (6); // serialization version + out.writeShort (7); // serialization version out.writeUTF (id); out.writeUTF (name); out.writeObject (parentHandle); diff --git a/src/helma/objectmodel/db/Property.java b/src/helma/objectmodel/db/Property.java index 78f3ae0c..b7da69c1 100644 --- a/src/helma/objectmodel/db/Property.java +++ b/src/helma/objectmodel/db/Property.java @@ -40,7 +40,11 @@ public final class Property implements IProperty, Serializable, Cloneable { type = in.readInt (); switch (type) { case STRING: - svalue = in.readUTF (); + // try to convert from old format + if (node.version < 7) + svalue = in.readUTF (); + else + svalue = (String) in.readObject (); break; case BOOLEAN: bvalue = in.readBoolean (); @@ -74,7 +78,7 @@ public final class Property implements IProperty, Serializable, Cloneable { out.writeInt (type); switch (type) { case STRING: - out.writeUTF (svalue); + out.writeObject (svalue); break; case BOOLEAN: out.writeBoolean (bvalue);