summaryrefslogtreecommitdiff
path: root/js/src
diff options
context:
space:
mode:
Diffstat (limited to 'js/src')
-rw-r--r--js/src/Ice/ConnectionI.js5
-rw-r--r--js/src/Ice/Instance.js6
-rw-r--r--js/src/Ice/ObjectAdapterI.js19
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 = [];