diff options
Diffstat (limited to 'java/src/IceInternal/Instance.java')
-rw-r--r-- | java/src/IceInternal/Instance.java | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/java/src/IceInternal/Instance.java b/java/src/IceInternal/Instance.java index e6ab5414695..b6475e650ff 100644 --- a/java/src/IceInternal/Instance.java +++ b/java/src/IceInternal/Instance.java @@ -251,6 +251,13 @@ public class Instance return _pluginManager; } + public int + messageSizeMax() + { + // No mutex lock, immutable. + return _messageSizeMax; + } + public BufferManager bufferManager() { @@ -290,6 +297,21 @@ public class Instance _defaultsAndOverrides = new DefaultsAndOverrides(_properties); + final int defaultMessageSizeMax = 1024; + final int num = _properties.getPropertyAsIntWithDefault("Ice.MessageSizeMax", defaultMessageSizeMax); + if(num < 1) + { + _messageSizeMax = defaultMessageSizeMax; // Ignore stupid values. + } + else if(num > 0x7fffffff / 1024) + { + _messageSizeMax = 0x7fffffff; + } + else + { + _messageSizeMax = num * 1024; // Property is in kilobytes, _messageSizeMax in bytes + } + _routerManager = new RouterManager(); _locatorManager = new LocatorManager(); @@ -479,6 +501,7 @@ public class Instance private Ice.Stats _stats; // Not reset by destroy(). private final TraceLevels _traceLevels; // Immutable, not reset by destroy(). private final DefaultsAndOverrides _defaultsAndOverrides; // Immutable, not reset by destroy(). + private final int _messageSizeMax; // Immutable, not reset by destroy(). private RouterManager _routerManager; private LocatorManager _locatorManager; private ReferenceFactory _referenceFactory; |