diff options
author | Bernard Normier <bernard@zeroc.com> | 2012-08-21 09:52:04 -0400 |
---|---|---|
committer | Bernard Normier <bernard@zeroc.com> | 2012-08-21 09:52:04 -0400 |
commit | 45fa1eae7c9a482917d3c9613cebaa75e6035ca9 (patch) | |
tree | c9921e0f8ee7074bef9ec06856f67ece29bb5ffa /java/src/Freeze/ObjectStore.java | |
parent | Fixed ICE-4602 (diff) | |
download | ice-45fa1eae7c9a482917d3c9613cebaa75e6035ca9.tar.bz2 ice-45fa1eae7c9a482917d3c9613cebaa75e6035ca9.tar.xz ice-45fa1eae7c9a482917d3c9613cebaa75e6035ca9.zip |
Fixed ICE-2097: with Ice encoding > 1.0, Freeze evictors no longer maintain
or store statistics.
Diffstat (limited to 'java/src/Freeze/ObjectStore.java')
-rw-r--r-- | java/src/Freeze/ObjectStore.java | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/java/src/Freeze/ObjectStore.java b/java/src/Freeze/ObjectStore.java index ab8bd9aaee5..ebf992a5a0e 100644 --- a/java/src/Freeze/ObjectStore.java +++ b/java/src/Freeze/ObjectStore.java @@ -321,7 +321,15 @@ class ObjectStore implements IceUtil.Store IceInternal.BasicStream os = new IceInternal.BasicStream(IceInternal.Util.getInstance(communicator), encoding, true, false); os.startWriteEncaps(); - v.__write(os); + + if(encoding == Ice.Util.Encoding_1_0) + { + v.__write(os); + } + else + { + os.writeObject(v.servant); + } os.writePendingObjects(); os.endWriteEncaps(); IceInternal.Buffer buf = os.prepareWrite(); @@ -341,10 +349,20 @@ class ObjectStore implements IceUtil.Store buf.b.position(0); buf.b.put(b); buf.b.position(0); - ObjectRecord rec= new ObjectRecord(); + ObjectRecord rec = new ObjectRecord(); is.startReadEncaps(); - rec.__read(is); - is.readPendingObjects(); + if(encoding.equals(Ice.Util.Encoding_1_0)) + { + rec.__read(is); + is.readPendingObjects(); + } + else + { + Ice.ObjectHolder holder = new Ice.ObjectHolder(); + is.readObject(holder); + is.readPendingObjects(); + rec.servant = holder.value; + } is.endReadEncaps(); return rec; } |