diff options
Diffstat (limited to 'js/src')
-rw-r--r-- | js/src/Ice/ConnectionI.js | 5 | ||||
-rw-r--r-- | js/src/Ice/Instance.js | 6 | ||||
-rw-r--r-- | js/src/Ice/ObjectAdapterI.js | 19 |
3 files changed, 23 insertions, 7 deletions
diff --git a/js/src/Ice/ConnectionI.js b/js/src/Ice/ConnectionI.js index 0a44caa195a..e98c9d2c4c6 100644 --- a/js/src/Ice/ConnectionI.js +++ b/js/src/Ice/ConnectionI.js @@ -99,6 +99,7 @@ var ConnectionI = Class({ this._warnUdp = instance.initializationData().properties.getPropertyAsInt("Ice.Warn.Datagrams") > 0; this._acmLastActivity = this._monitor !== null && this._monitor.getACM().timeout > 0 ? Date.now() : -1; this._nextRequestId = 1; + this._messageSizeMax = adapter ? adapter.messageSizeMax() : instance.messageSizeMax(); this._batchAutoFlushSize = instance.batchAutoFlushSize(); this._batchStream = new BasicStream(instance, Protocol.currentProtocolEncoding); this._batchStreamInUse = false; @@ -990,9 +991,9 @@ var ConnectionI = Class({ { throw new Ice.IllegalMessageSizeException(); } - if(size > this._instance.messageSizeMax()) + if(size > this._messageSizeMax) { - ExUtil.throwMemoryLimitException(size, this._instance.messageSizeMax()); + ExUtil.throwMemoryLimitException(size, this._messageSizeMax); } if(size > this._readStream.size) { diff --git a/js/src/Ice/Instance.js b/js/src/Ice/Instance.js index 38587bb2b2d..91cd701b469 100644 --- a/js/src/Ice/Instance.js +++ b/js/src/Ice/Instance.js @@ -325,11 +325,7 @@ var Instance = Ice.Class({ var defMessageSizeMax = 1024; var num = this._initData.properties.getPropertyAsIntWithDefault("Ice.MessageSizeMax", defMessageSizeMax); - if(num < 1) - { - this._messageSizeMax = defMessageSizeMax * 1024; // Ignore non-sensical values. - } - else if(num > 0x7fffffff / 1024) + if(num < 1 || num > 0x7fffffff / 1024) { this._messageSizeMax = 0x7fffffff; } diff --git a/js/src/Ice/ObjectAdapterI.js b/js/src/Ice/ObjectAdapterI.js index ec069e75fa8..a65e3f30ece 100644 --- a/js/src/Ice/ObjectAdapterI.js +++ b/js/src/Ice/ObjectAdapterI.js @@ -44,6 +44,7 @@ var _suffixes = "Locator.PreferSecure", "Locator.CollocationOptimized", "Locator.Router", + "MessageSizeMax", "PublishedEndpoints", "RegisterProcess", "ReplicaGroupId", @@ -97,6 +98,7 @@ var ObjectAdapterI = Ice.Class({ if(this._noConfig) { this._reference = this._instance.referenceFactory().createFromString("dummy -t", ""); + this._messageSizeMax = this._instance.messageSizeMax(); promise.succeed(this, promise); return; } @@ -151,6 +153,19 @@ var ObjectAdapterI = Ice.Class({ } } + { + var defaultMessageSizeMax = this._instance.messageSizeMax() / 1024; + var num = properties.getPropertyAsIntWithDefault(this._name + ".MessageSizeMax", defaultMessageSizeMax); + if(num < 1 || num > 0x7fffffff / 1024) + { + this._messageSizeMax = 0x7fffffff; + } + else + { + this._messageSizeMax = num * 1024; // Property is in kilobytes, _messageSizeMax in bytes + } + } + try { @@ -461,6 +476,10 @@ var ObjectAdapterI = Ice.Class({ // return this._servantManager; }, + messageSizeMax: function() + { + return this._messageSizeMax; + }, newProxy: function(ident, facet) { var endpoints = []; |