summaryrefslogtreecommitdiff
path: root/java/src/Freeze/ObjectStore.java
diff options
context:
space:
mode:
authorBernard Normier <bernard@zeroc.com>2012-08-21 09:52:04 -0400
committerBernard Normier <bernard@zeroc.com>2012-08-21 09:52:04 -0400
commit45fa1eae7c9a482917d3c9613cebaa75e6035ca9 (patch)
treec9921e0f8ee7074bef9ec06856f67ece29bb5ffa /java/src/Freeze/ObjectStore.java
parentFixed ICE-4602 (diff)
downloadice-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.java26
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;
}