diff options
author | Mark Spruiell <mes@zeroc.com> | 2004-01-30 23:42:05 +0000 |
---|---|---|
committer | Mark Spruiell <mes@zeroc.com> | 2004-01-30 23:42:05 +0000 |
commit | af0467f0dbbe9945d5e2352f8046c4fe0d9b5fc5 (patch) | |
tree | 42c7f9022942b668b870fe8370e67e841aaec8af /java/src/IceInternal/BasicStream.java | |
parent | minor edit (diff) | |
download | ice-af0467f0dbbe9945d5e2352f8046c4fe0d9b5fc5.tar.bz2 ice-af0467f0dbbe9945d5e2352f8046c4fe0d9b5fc5.tar.xz ice-af0467f0dbbe9945d5e2352f8046c4fe0d9b5fc5.zip |
allow slicing to be disabled
Diffstat (limited to 'java/src/IceInternal/BasicStream.java')
-rw-r--r-- | java/src/IceInternal/BasicStream.java | 37 |
1 files changed, 27 insertions, 10 deletions
diff --git a/java/src/IceInternal/BasicStream.java b/java/src/IceInternal/BasicStream.java index 3acac5097bf..e746bebc71a 100644 --- a/java/src/IceInternal/BasicStream.java +++ b/java/src/IceInternal/BasicStream.java @@ -35,6 +35,7 @@ public class BasicStream _traceSlicing = -1; _marshalFacets = true; + _sliceObjects = true; _messageSizeMax = _instance.messageSizeMax(); // Cached for efficiency. } @@ -1164,20 +1165,29 @@ public class BasicStream if(v == null) { - // - // Performance sensitive, so we use lazy initialization for tracing. - // - if(_traceSlicing == -1) + if(_sliceObjects) { - _traceSlicing = _instance.traceLevels().slicing; - _slicingCat = _instance.traceLevels().slicingCat; + // + // Performance sensitive, so we use lazy initialization for tracing. + // + if(_traceSlicing == -1) + { + _traceSlicing = _instance.traceLevels().slicing; + _slicingCat = _instance.traceLevels().slicingCat; + } + if(_traceSlicing > 0) + { + TraceUtil.traceSlicing("class", id, _slicingCat, _instance.logger()); + } + skipSlice(); // Slice off this derived part -- we don't understand it. + continue; } - if(_traceSlicing > 0) + else { - TraceUtil.traceSlicing("class", id, _slicingCat, _instance.logger()); + Ice.NoObjectFactoryException ex = new Ice.NoObjectFactoryException(); + ex.type = id; + throw ex; } - skipSlice(); // Slice off this derived part -- we don't understand it. - continue; } Integer i = new Integer(index); @@ -1319,6 +1329,12 @@ public class BasicStream _marshalFacets = b; } + public void + sliceObjects(boolean b) + { + _sliceObjects = b; + } + void writeInstance(Ice.Object v, Integer index) { @@ -1654,6 +1670,7 @@ public class BasicStream private String _slicingCat; private boolean _marshalFacets; + private boolean _sliceObjects; private int _messageSizeMax; } |