diff options
Diffstat (limited to 'java/src/Ice/ObjectImpl.java')
-rw-r--r-- | java/src/Ice/ObjectImpl.java | 42 |
1 files changed, 25 insertions, 17 deletions
diff --git a/java/src/Ice/ObjectImpl.java b/java/src/Ice/ObjectImpl.java index 1bf0971c506..0600b15bd46 100644 --- a/java/src/Ice/ObjectImpl.java +++ b/java/src/Ice/ObjectImpl.java @@ -264,25 +264,33 @@ public class ObjectImpl implements Object, java.lang.Cloneable } public void - __marshal(Ice.Stream __os) + __marshal(Ice.Stream __os, boolean __marshalFacets) { - synchronized(_activeFacetMap) - { - final int sz = _activeFacetMap.size(); + if(__marshalFacets) + { + synchronized(_activeFacetMap) + { + final int sz = _activeFacetMap.size(); + + __os.startWriteDictionary("ice:facets", sz); + java.util.Set set = _activeFacetMap.keySet(); + String[] keys = new String[sz]; + set.toArray(keys); + for(int i = 0; i < sz; i++) + { + __os.startWriteDictionaryElement(); + __os.writeString("ice:key", keys[i]); + __os.writeObject("ice:value", (Object)_activeFacetMap.get(keys[i])); + __os.endWriteDictionaryElement(); + } + } + } + else + { + __os.startWriteDictionary("ice:facets", 0); + } - __os.startWriteDictionary("ice:facets", sz); - java.util.Set set = _activeFacetMap.keySet(); - String[] keys = new String[sz]; - set.toArray(keys); - for(int i = 0; i < sz; i++) - { - __os.startWriteDictionaryElement(); - __os.writeString("ice:key", keys[i]); - __os.writeObject("ice:value", (Object)_activeFacetMap.get(keys[i])); - __os.endWriteDictionaryElement(); - } - __os.endWriteDictionary(); - } + __os.endWriteDictionary(); } public void |