summaryrefslogtreecommitdiff
path: root/java/src
diff options
context:
space:
mode:
Diffstat (limited to 'java/src')
-rw-r--r--java/src/Freeze/src/main/java/Freeze/MapInternal/MapI.java2
-rw-r--r--java/src/Freeze/src/main/java/Freeze/ObjectStore.java6
-rw-r--r--java/src/Ice/src/main/java/Ice/ConnectionI.java40
-rw-r--r--java/src/Ice/src/main/java/Ice/InputStreamI.java2
-rw-r--r--java/src/Ice/src/main/java/Ice/OutputStreamI.java4
-rw-r--r--java/src/Ice/src/main/java/IceInternal/BasicStream.java46
-rw-r--r--java/src/Ice/src/main/java/IceInternal/Buffer.java12
-rw-r--r--java/src/Ice/src/main/java/IceInternal/CollocatedRequestHandler.java27
-rw-r--r--java/src/Ice/src/main/java/IceInternal/ConnectRequestHandler.java19
-rw-r--r--java/src/Ice/src/main/java/IceInternal/EndpointFactoryManager.java2
-rw-r--r--java/src/Ice/src/main/java/IceInternal/Instance.java36
-rw-r--r--java/src/Ice/src/main/java/IceInternal/PropertyNames.java8
-rw-r--r--java/src/Ice/src/main/java/IceInternal/TcpTransceiver.java6
-rw-r--r--java/src/Ice/src/main/java/IceInternal/Transceiver.java2
-rw-r--r--java/src/Ice/src/main/java/IceInternal/UdpTransceiver.java7
-rw-r--r--java/src/Ice/src/main/java/IceInternal/WSTransceiver.java8
-rw-r--r--java/src/Ice/src/main/java/IceSSL/TransceiverI.java6
17 files changed, 95 insertions, 138 deletions
diff --git a/java/src/Freeze/src/main/java/Freeze/MapInternal/MapI.java b/java/src/Freeze/src/main/java/Freeze/MapInternal/MapI.java
index 389e935ed41..379f4d31c5b 100644
--- a/java/src/Freeze/src/main/java/Freeze/MapInternal/MapI.java
+++ b/java/src/Freeze/src/main/java/Freeze/MapInternal/MapI.java
@@ -1172,7 +1172,7 @@ public abstract class MapI<K, V> extends java.util.AbstractMap<K, V>
IceInternal.BasicStream createWriteStream()
{
- return new IceInternal.BasicStream(IceInternal.Util.getInstance(_communicator), _encoding, true, false);
+ return new IceInternal.BasicStream(IceInternal.Util.getInstance(_communicator), _encoding, false);
}
IceInternal.BasicStream createReadStream(byte[] arr)
diff --git a/java/src/Freeze/src/main/java/Freeze/ObjectStore.java b/java/src/Freeze/src/main/java/Freeze/ObjectStore.java
index fcd3253dab0..76993b39655 100644
--- a/java/src/Freeze/src/main/java/Freeze/ObjectStore.java
+++ b/java/src/Freeze/src/main/java/Freeze/ObjectStore.java
@@ -295,8 +295,8 @@ class ObjectStore implements IceUtil.Store
static com.sleepycat.db.DatabaseEntry
marshalKey(Ice.Identity v, Ice.Communicator communicator, Ice.EncodingVersion encoding)
{
- IceInternal.BasicStream os =
- new IceInternal.BasicStream(IceInternal.Util.getInstance(communicator), encoding, true, false);
+ IceInternal.BasicStream os =
+ new IceInternal.BasicStream(IceInternal.Util.getInstance(communicator), encoding, false);
v.__write(os);
return new com.sleepycat.db.DatabaseEntry(os.prepareWrite().b);
}
@@ -322,7 +322,7 @@ class ObjectStore implements IceUtil.Store
marshalValue(ObjectRecord v, Ice.Communicator communicator, Ice.EncodingVersion encoding, boolean keepStats)
{
IceInternal.BasicStream os =
- new IceInternal.BasicStream(IceInternal.Util.getInstance(communicator), encoding, true, false);
+ new IceInternal.BasicStream(IceInternal.Util.getInstance(communicator), encoding, false);
os.startWriteEncaps();
if(keepStats)
diff --git a/java/src/Ice/src/main/java/Ice/ConnectionI.java b/java/src/Ice/src/main/java/Ice/ConnectionI.java
index c0b74d70bac..cfef2312b11 100644
--- a/java/src/Ice/src/main/java/Ice/ConnectionI.java
+++ b/java/src/Ice/src/main/java/Ice/ConnectionI.java
@@ -352,7 +352,7 @@ public final class ConnectionI extends IceInternal.EventHandler
// Ensure the message isn't bigger than what we can send with the
// transport.
//
- _transceiver.checkSendSize(os.getBuffer(), _instance.messageSizeMax());
+ _transceiver.checkSendSize(os.getBuffer());
//
// Notify the request that it's cancelable with this connection.
@@ -469,8 +469,13 @@ public final class ConnectionI extends IceInternal.EventHandler
}
boolean flush = false;
- if(_batchAutoFlush)
+ if(_batchAutoFlushSize > 0)
{
+ if(_batchStream.size() > _batchAutoFlushSize)
+ {
+ flush = true;
+ }
+
//
// Throw memory limit exception if the first message added
// causes us to go over limit. Otherwise put aside the
@@ -479,7 +484,7 @@ public final class ConnectionI extends IceInternal.EventHandler
//
try
{
- _transceiver.checkSendSize(_batchStream.getBuffer(), _instance.messageSizeMax());
+ _transceiver.checkSendSize(_batchStream.getBuffer());
}
catch(Ice.LocalException ex)
{
@@ -529,23 +534,12 @@ public final class ConnectionI extends IceInternal.EventHandler
//
// Reset the batch stream.
//
- _batchStream = new IceInternal.BasicStream(_instance, IceInternal.Protocol.currentProtocolEncoding,
- _batchAutoFlush);
+ _batchStream = new IceInternal.BasicStream(_instance, IceInternal.Protocol.currentProtocolEncoding);
_batchRequestNum = 0;
_batchRequestCompress = false;
_batchMarker = 0;
//
- // Check again if the last request doesn't exceed the
- // maximum message size.
- //
- if(IceInternal.Protocol.requestBatchHdr.length + lastRequest.length > _instance.messageSizeMax())
- {
- IceInternal.Ex.throwMemoryLimitException(IceInternal.Protocol.requestBatchHdr.length +
- lastRequest.length, _instance.messageSizeMax());
- }
-
- //
// Start a new batch with the last message that caused us to
// go over the limit.
//
@@ -585,8 +579,7 @@ public final class ConnectionI extends IceInternal.EventHandler
public synchronized void abortBatchRequest()
{
- _batchStream = new IceInternal.BasicStream(_instance, IceInternal.Protocol.currentProtocolEncoding,
- _batchAutoFlush);
+ _batchStream = new IceInternal.BasicStream(_instance, IceInternal.Protocol.currentProtocolEncoding);
_batchRequestNum = 0;
_batchRequestCompress = false;
_batchMarker = 0;
@@ -714,8 +707,7 @@ public final class ConnectionI extends IceInternal.EventHandler
//
// Reset the batch stream.
//
- _batchStream = new IceInternal.BasicStream(_instance, IceInternal.Protocol.currentProtocolEncoding,
- _batchAutoFlush);
+ _batchStream = new IceInternal.BasicStream(_instance, IceInternal.Protocol.currentProtocolEncoding);
_batchRequestNum = 0;
_batchRequestCompress = false;
_batchMarker = 0;
@@ -1667,9 +1659,8 @@ public final class ConnectionI extends IceInternal.EventHandler
_acmLastActivity = -1;
}
_nextRequestId = 1;
- _batchAutoFlush = initData.properties.getPropertyAsIntWithDefault("Ice.BatchAutoFlush", 1) > 0 ? true : false;
- _batchStream = new IceInternal.BasicStream(instance, IceInternal.Protocol.currentProtocolEncoding,
- _batchAutoFlush);
+ _batchAutoFlushSize = _instance.batchAutoFlushSize();
+ _batchStream = new IceInternal.BasicStream(instance, IceInternal.Protocol.currentProtocolEncoding);
_batchStreamInUse = false;
_batchRequestNum = 0;
_batchRequestCompress = false;
@@ -3124,11 +3115,12 @@ public final class ConnectionI extends IceInternal.EventHandler
private int _nextRequestId;
- private java.util.Map<Integer, IceInternal.OutgoingAsync> _asyncRequests = new java.util.HashMap<Integer, IceInternal.OutgoingAsync>();
+ private java.util.Map<Integer, IceInternal.OutgoingAsync> _asyncRequests =
+ new java.util.HashMap<Integer, IceInternal.OutgoingAsync>();
private LocalException _exception;
- private boolean _batchAutoFlush;
+ private int _batchAutoFlushSize;
private IceInternal.BasicStream _batchStream;
private boolean _batchStreamInUse;
private int _batchRequestNum;
diff --git a/java/src/Ice/src/main/java/Ice/InputStreamI.java b/java/src/Ice/src/main/java/Ice/InputStreamI.java
index a05e64de5ac..164be606e0a 100644
--- a/java/src/Ice/src/main/java/Ice/InputStreamI.java
+++ b/java/src/Ice/src/main/java/Ice/InputStreamI.java
@@ -31,7 +31,7 @@ public class InputStreamI implements InputStream
{
if(copyData)
{
- _is = new IceInternal.BasicStream(instance, v, true, false);
+ _is = new IceInternal.BasicStream(instance, v, false);
_is.resize(data.length, true);
IceInternal.Buffer buf = _is.getBuffer();
buf.b.position(0);
diff --git a/java/src/Ice/src/main/java/Ice/OutputStreamI.java b/java/src/Ice/src/main/java/Ice/OutputStreamI.java
index a5b8836c5cf..f3d3432056c 100644
--- a/java/src/Ice/src/main/java/Ice/OutputStreamI.java
+++ b/java/src/Ice/src/main/java/Ice/OutputStreamI.java
@@ -16,7 +16,7 @@ public class OutputStreamI implements OutputStream
{
_communicator = communicator;
IceInternal.Instance instance = IceInternal.Util.getInstance(communicator);
- _os = new IceInternal.BasicStream(instance, instance.defaultsAndOverrides().defaultEncoding, true, false);
+ _os = new IceInternal.BasicStream(instance, instance.defaultsAndOverrides().defaultEncoding, false);
_os.closure(this);
}
@@ -25,7 +25,7 @@ public class OutputStreamI implements OutputStream
{
_communicator = communicator;
IceInternal.Instance instance = IceInternal.Util.getInstance(communicator);
- _os = new IceInternal.BasicStream(instance, v, true, false);
+ _os = new IceInternal.BasicStream(instance, v, false);
_os.closure(this);
}
diff --git a/java/src/Ice/src/main/java/IceInternal/BasicStream.java b/java/src/Ice/src/main/java/IceInternal/BasicStream.java
index ac2fcc3fdaa..b325cf0fb85 100644
--- a/java/src/Ice/src/main/java/IceInternal/BasicStream.java
+++ b/java/src/Ice/src/main/java/IceInternal/BasicStream.java
@@ -16,38 +16,32 @@ public class BasicStream
public
BasicStream(Instance instance, Ice.EncodingVersion encoding)
{
- this(instance, encoding, false);
+ this(instance, encoding, instance.cacheMessageBuffers() > 1);
}
public
- BasicStream(Instance instance, Ice.EncodingVersion encoding, boolean unlimited)
+ BasicStream(Instance instance, Ice.EncodingVersion encoding, boolean direct)
{
- this(instance, encoding, unlimited, instance.cacheMessageBuffers() > 1);
- }
-
- public
- BasicStream(Instance instance, Ice.EncodingVersion encoding, boolean unlimited, boolean direct)
- {
- initialize(instance, encoding, unlimited);
- _buf = new Buffer(_instance.messageSizeMax(), direct);
+ initialize(instance, encoding);
+ _buf = new Buffer(direct);
}
public
BasicStream(Instance instance, Ice.EncodingVersion encoding, byte[] data)
{
- initialize(instance, encoding, true);
+ initialize(instance, encoding);
_buf = new Buffer(data);
}
public
BasicStream(Instance instance, Ice.EncodingVersion encoding, java.nio.ByteBuffer data)
{
- initialize(instance, encoding, true);
+ initialize(instance, encoding);
_buf = new Buffer(data);
}
private void
- initialize(Instance instance, Ice.EncodingVersion encoding, boolean unlimited)
+ initialize(Instance instance, Ice.EncodingVersion encoding)
{
_instance = instance;
_closure = null;
@@ -60,9 +54,6 @@ public class BasicStream
_sliceObjects = true;
- _messageSizeMax = _instance.messageSizeMax(); // Cached for efficiency.
- _unlimited = unlimited;
-
_startSeq = -1;
}
@@ -144,10 +135,6 @@ public class BasicStream
resetEncaps();
other.resetEncaps();
- boolean tmpUnlimited = other._unlimited;
- other._unlimited = _unlimited;
- _unlimited = tmpUnlimited;
-
int tmpStartSeq = other._startSeq;
other._startSeq = _startSeq;
_startSeq = tmpStartSeq;
@@ -167,14 +154,6 @@ public class BasicStream
public void
resize(int sz, boolean reading)
{
- //
- // Check memory limit if stream is not unlimited.
- //
- if(!_unlimited && sz > _messageSizeMax)
- {
- Ex.throwMemoryLimitException(sz, _messageSizeMax);
- }
-
_buf.resize(sz, reading);
_buf.b.position(sz);
}
@@ -2667,6 +2646,10 @@ public class BasicStream
{
throw new Ice.IllegalMessageSizeException();
}
+ if(uncompressedSize > _instance.messageSizeMax())
+ {
+ IceInternal.Ex.throwMemoryLimitException(uncompressedSize, _instance.messageSizeMax());
+ }
int compressedLen = size() - headerSize - 4;
@@ -2744,10 +2727,6 @@ public class BasicStream
public void
expand(int n)
{
- if(!_unlimited && _buf.b != null && _buf.b.position() + n > _messageSizeMax)
- {
- Ex.throwMemoryLimitException(_buf.b.position() + n, _messageSizeMax);
- }
_buf.expand(n);
}
@@ -4830,9 +4809,6 @@ public class BasicStream
private boolean _sliceObjects;
- private int _messageSizeMax;
- private boolean _unlimited;
-
private int _startSeq;
private int _minSeqSize;
diff --git a/java/src/Ice/src/main/java/IceInternal/Buffer.java b/java/src/Ice/src/main/java/IceInternal/Buffer.java
index fc7f88966c1..19dc5587a81 100644
--- a/java/src/Ice/src/main/java/IceInternal/Buffer.java
+++ b/java/src/Ice/src/main/java/IceInternal/Buffer.java
@@ -16,17 +16,16 @@ package IceInternal;
public class Buffer
{
public
- Buffer(int maxCapacity, boolean direct)
+ Buffer(boolean direct)
{
- this(maxCapacity, direct, java.nio.ByteOrder.LITTLE_ENDIAN);
+ this(direct, java.nio.ByteOrder.LITTLE_ENDIAN);
}
- Buffer(int maxCapacity, boolean direct, java.nio.ByteOrder order)
+ Buffer(boolean direct, java.nio.ByteOrder order)
{
b = _emptyBuffer;
_size = 0;
_capacity = 0;
- _maxCapacity = maxCapacity;
_direct = direct;
_order = order;
}
@@ -42,7 +41,6 @@ public class Buffer
b.order(order);
_size = data.length;
_capacity = 0;
- _maxCapacity = 0;
_direct = false;
_order = order;
}
@@ -58,7 +56,6 @@ public class Buffer
b.order(order);
_size = data.remaining();
_capacity = 0;
- _maxCapacity = 0;
_direct = false;
_order = order;
}
@@ -157,7 +154,7 @@ public class Buffer
{
if(n > _capacity)
{
- _capacity = java.lang.Math.max(n, java.lang.Math.min(2 * _capacity, _maxCapacity));
+ _capacity = java.lang.Math.max(n, 2 * _capacity);
_capacity = java.lang.Math.max(240, _capacity);
}
else if(n < _capacity)
@@ -212,7 +209,6 @@ public class Buffer
private int _size;
private int _capacity; // Cache capacity to avoid excessive method calls.
- private int _maxCapacity;
private boolean _direct; // Use direct buffers?
private int _shrinkCounter;
private java.nio.ByteOrder _order;
diff --git a/java/src/Ice/src/main/java/IceInternal/CollocatedRequestHandler.java b/java/src/Ice/src/main/java/IceInternal/CollocatedRequestHandler.java
index bd882384441..931a04cb1f2 100644
--- a/java/src/Ice/src/main/java/IceInternal/CollocatedRequestHandler.java
+++ b/java/src/Ice/src/main/java/IceInternal/CollocatedRequestHandler.java
@@ -48,12 +48,11 @@ public class CollocatedRequestHandler implements RequestHandler, ResponseHandler
_logger = _reference.getInstance().initializationData().logger; // Cached for better performance.
_traceLevels = _reference.getInstance().traceLevels(); // Cached for better performance.
- _batchAutoFlush = ref.getInstance().initializationData().properties.getPropertyAsIntWithDefault(
- "Ice.BatchAutoFlush", 1) > 0;
+ _batchAutoFlushSize = ref.getInstance().batchAutoFlushSize();
_requestId = 0;
_batchStreamInUse = false;
_batchRequestNum = 0;
- _batchStream = new BasicStream(ref.getInstance(), Protocol.currentProtocolEncoding, _batchAutoFlush);
+ _batchStream = new BasicStream(ref.getInstance(), Protocol.currentProtocolEncoding);
}
@Override
@@ -102,7 +101,7 @@ public class CollocatedRequestHandler implements RequestHandler, ResponseHandler
{
_batchStream.swap(os);
- if(_batchAutoFlush & (_batchStream.size() > _reference.getInstance().messageSizeMax()))
+ if(_batchAutoFlushSize > 0 && (_batchStream.size() > _batchAutoFlushSize))
{
//
// Temporarily save the last request.
@@ -115,8 +114,7 @@ public class CollocatedRequestHandler implements RequestHandler, ResponseHandler
final int invokeNum = _batchRequestNum;
final BasicStream stream = new BasicStream(_reference.getInstance(),
- Protocol.currentProtocolEncoding,
- _batchAutoFlush);
+ Protocol.currentProtocolEncoding);
stream.swap(_batchStream);
_adapter.getThreadPool().dispatch(
@@ -137,15 +135,6 @@ public class CollocatedRequestHandler implements RequestHandler, ResponseHandler
_batchMarker = 0;
//
- // Check again if the last request doesn't exceed what we can send with the auto flush
- //
- if(Protocol.requestBatchHdr.length + lastRequest.length > _reference.getInstance().messageSizeMax())
- {
- Ex.throwMemoryLimitException(Protocol.requestBatchHdr.length + lastRequest.length,
- _reference.getInstance().messageSizeMax());
- }
-
- //
// Start a new batch with the last message that caused us to go over the limit.
//
_batchStream.writeBlob(Protocol.requestBatchHdr);
@@ -172,8 +161,7 @@ public class CollocatedRequestHandler implements RequestHandler, ResponseHandler
synchronized public void
abortBatchRequest()
{
- BasicStream dummy = new BasicStream(_reference.getInstance(), Protocol.currentProtocolEncoding,
- _batchAutoFlush);
+ BasicStream dummy = new BasicStream(_reference.getInstance(), Protocol.currentProtocolEncoding);
_batchStream.swap(dummy);
_batchRequestNum = 0;
_batchMarker = 0;
@@ -380,8 +368,7 @@ public class CollocatedRequestHandler implements RequestHandler, ResponseHandler
//
// Reset the batch stream.
//
- BasicStream dummy = new BasicStream(_reference.getInstance(), Protocol.currentProtocolEncoding,
- _batchAutoFlush);
+ BasicStream dummy = new BasicStream(_reference.getInstance(), Protocol.currentProtocolEncoding);
_batchStream.swap(dummy);
_batchRequestNum = 0;
_batchMarker = 0;
@@ -567,7 +554,7 @@ public class CollocatedRequestHandler implements RequestHandler, ResponseHandler
private final Ice.ObjectAdapterI _adapter;
private final Ice.Logger _logger;
private final TraceLevels _traceLevels;
- private boolean _batchAutoFlush;
+ private int _batchAutoFlushSize;
private int _requestId;
diff --git a/java/src/Ice/src/main/java/IceInternal/ConnectRequestHandler.java b/java/src/Ice/src/main/java/IceInternal/ConnectRequestHandler.java
index 16158b23106..a89e5d5a5b2 100644
--- a/java/src/Ice/src/main/java/IceInternal/ConnectRequestHandler.java
+++ b/java/src/Ice/src/main/java/IceInternal/ConnectRequestHandler.java
@@ -119,13 +119,6 @@ public class ConnectRequestHandler
_batchStream.swap(os);
- if(!_batchAutoFlush &&
- _batchStream.size() + _batchRequestsSize > _reference.getInstance().messageSizeMax())
- {
- Ex.throwMemoryLimitException(_batchStream.size() + _batchRequestsSize,
- _reference.getInstance().messageSizeMax());
- }
-
_requests.add(new Request(_batchStream));
return;
}
@@ -145,10 +138,8 @@ public class ConnectRequestHandler
_batchRequestInProgress = false;
notifyAll();
- BasicStream dummy = new BasicStream(_reference.getInstance(), Protocol.currentProtocolEncoding,
- _batchAutoFlush);
+ BasicStream dummy = new BasicStream(_reference.getInstance(), Protocol.currentProtocolEncoding);
_batchStream.swap(dummy);
- _batchRequestsSize = Protocol.requestBatchHdr.length;
return;
}
@@ -338,13 +329,10 @@ public class ConnectRequestHandler
_connect = true;
_response = _reference.getMode() == Reference.ModeTwoway;
_proxy = (Ice.ObjectPrxHelperBase)proxy;
- _batchAutoFlush = ref.getInstance().initializationData().properties.getPropertyAsIntWithDefault(
- "Ice.BatchAutoFlush", 1) > 0 ? true : false;
_initialized = false;
_flushing = false;
_batchRequestInProgress = false;
- _batchRequestsSize = Protocol.requestBatchHdr.length;
- _batchStream = new BasicStream(ref.getInstance(), Protocol.currentProtocolEncoding, _batchAutoFlush);
+ _batchStream = new BasicStream(ref.getInstance(), Protocol.currentProtocolEncoding);
}
private boolean
@@ -560,8 +548,6 @@ public class ConnectRequestHandler
private Ice.ObjectPrxHelperBase _proxy;
private java.util.Set<Ice.ObjectPrxHelperBase> _proxies = new java.util.HashSet<Ice.ObjectPrxHelperBase>();
- private final boolean _batchAutoFlush;
-
private Ice.ConnectionI _connection;
private boolean _compress;
private Ice.LocalException _exception;
@@ -570,7 +556,6 @@ public class ConnectRequestHandler
private java.util.List<Request> _requests = new java.util.LinkedList<Request>();
private boolean _batchRequestInProgress;
- private int _batchRequestsSize;
private BasicStream _batchStream;
private RequestHandler _connectionRequestHandler;
diff --git a/java/src/Ice/src/main/java/IceInternal/EndpointFactoryManager.java b/java/src/Ice/src/main/java/IceInternal/EndpointFactoryManager.java
index a0b2b1511d2..ef1b5646e4d 100644
--- a/java/src/Ice/src/main/java/IceInternal/EndpointFactoryManager.java
+++ b/java/src/Ice/src/main/java/IceInternal/EndpointFactoryManager.java
@@ -127,7 +127,7 @@ public final class EndpointFactoryManager
// and ask the factory to read the endpoint data from that stream to create
// the actual endpoint.
//
- BasicStream bs = new BasicStream(_instance, Protocol.currentProtocolEncoding, true, false);
+ BasicStream bs = new BasicStream(_instance, Protocol.currentProtocolEncoding, false);
bs.writeShort(ue.type());
ue.streamWrite(bs);
Buffer buf = bs.getBuffer();
diff --git a/java/src/Ice/src/main/java/IceInternal/Instance.java b/java/src/Ice/src/main/java/IceInternal/Instance.java
index 0160d6564d4..8085635ad04 100644
--- a/java/src/Ice/src/main/java/IceInternal/Instance.java
+++ b/java/src/Ice/src/main/java/IceInternal/Instance.java
@@ -396,6 +396,13 @@ public final class Instance
}
public int
+ batchAutoFlushSize()
+ {
+ // No mutex lock, immutable.
+ return _batchAutoFlushSize;
+ }
+
+ public int
cacheMessageBuffers()
{
// No mutex lock, immutable.
@@ -899,6 +906,34 @@ public final class Instance
}
}
+ if(_initData.properties.getProperty("Ice.BatchAutoFlushSize").isEmpty() &&
+ !_initData.properties.getProperty("Ice.BatchAutoFlush").isEmpty())
+ {
+ if(_initData.properties.getPropertyAsInt("Ice.BatchAutoFlush") > 0)
+ {
+ _batchAutoFlushSize = _messageSizeMax;
+ }
+ else
+ {
+ _batchAutoFlushSize = 0;
+ }
+ }
+ else
+ {
+ int num = _initData.properties.getPropertyAsIntWithDefault("Ice.BatchAutoFlushSize", 1024); // 1MB
+ if(num < 1)
+ {
+ _batchAutoFlushSize = num;
+ }
+ else if(num > 0x7fffffff / 1024)
+ {
+ _batchAutoFlushSize = 0x7fffffff;
+ }
+ else
+ {
+ _batchAutoFlushSize = num * 1024; // Property is in kilobytes, _batchAutoFlushSize in bytes
+ }
+ }
_implicitContext = Ice.ImplicitContextI.create(_initData.properties.getProperty("Ice.ImplicitContext"));
@@ -1612,6 +1647,7 @@ public final class Instance
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 final int _batchAutoFlushSize; // Immutable, not reset by destroy().
private final int _cacheMessageBuffers; // Immutable, not reset by destroy().
private final ACMConfig _clientACM; // Immutable, not reset by destroy().
private final ACMConfig _serverACM; // Immutable, not reset by destroy().
diff --git a/java/src/Ice/src/main/java/IceInternal/PropertyNames.java b/java/src/Ice/src/main/java/IceInternal/PropertyNames.java
index c7800e61d62..32eba2e3ff8 100644
--- a/java/src/Ice/src/main/java/IceInternal/PropertyNames.java
+++ b/java/src/Ice/src/main/java/IceInternal/PropertyNames.java
@@ -6,7 +6,7 @@
// ICE_LICENSE file included in this distribution.
//
// **********************************************************************
-// Generated by makeprops.py from file ../config/PropertyNames.xml, Thu Oct 9 11:53:58 2014
+// Generated by makeprops.py from file ./config/PropertyNames.xml, Wed Nov 5 13:47:49 2014
// IMPORTANT: Do not edit this file -- any edits made here will be lost!
@@ -75,7 +75,8 @@ public final class PropertyNames
new Property("Ice\\.Admin\\.Logger\\.Properties", false, null),
new Property("Ice\\.Admin\\.ServerId", false, null),
new Property("Ice\\.BackgroundLocatorCacheUpdates", false, null),
- new Property("Ice\\.BatchAutoFlush", false, null),
+ new Property("Ice\\.BatchAutoFlush", true, null),
+ new Property("Ice\\.BatchAutoFlushSize", false, null),
new Property("Ice\\.ChangeUser", false, null),
new Property("Ice\\.ClientAccessPolicyProtocol", false, null),
new Property("Ice\\.Compression\\.Level", false, null),
@@ -934,11 +935,8 @@ public final class PropertyNames
new Property("IcePatch2\\.ThreadPool\\.Serialize", false, null),
new Property("IcePatch2\\.ThreadPool\\.ThreadIdleTime", false, null),
new Property("IcePatch2\\.ThreadPool\\.ThreadPriority", false, null),
- new Property("IcePatch2\\.ChunkSize", true, "IcePatch2Client.ChunkSize"),
new Property("IcePatch2\\.Directory", false, null),
new Property("IcePatch2\\.InstanceName", false, null),
- new Property("IcePatch2\\.Remove", true, "IcePatch2Client.Remove"),
- new Property("IcePatch2\\.Thorough", true, "IcePatch2Client.Thorough"),
null
};
diff --git a/java/src/Ice/src/main/java/IceInternal/TcpTransceiver.java b/java/src/Ice/src/main/java/IceInternal/TcpTransceiver.java
index 5e8d33fb672..b58f9d03677 100644
--- a/java/src/Ice/src/main/java/IceInternal/TcpTransceiver.java
+++ b/java/src/Ice/src/main/java/IceInternal/TcpTransceiver.java
@@ -94,12 +94,8 @@ final class TcpTransceiver implements Transceiver
}
@Override
- public void checkSendSize(Buffer buf, int messageSizeMax)
+ public void checkSendSize(Buffer buf)
{
- if(buf.size() > messageSizeMax)
- {
- Ex.throwMemoryLimitException(buf.size(), messageSizeMax);
- }
}
TcpTransceiver(ProtocolInstance instance, StreamSocket stream)
diff --git a/java/src/Ice/src/main/java/IceInternal/Transceiver.java b/java/src/Ice/src/main/java/IceInternal/Transceiver.java
index f9889df74f8..f40444e84c9 100644
--- a/java/src/Ice/src/main/java/IceInternal/Transceiver.java
+++ b/java/src/Ice/src/main/java/IceInternal/Transceiver.java
@@ -26,5 +26,5 @@ public interface Transceiver
String toString();
String toDetailedString();
Ice.ConnectionInfo getInfo();
- void checkSendSize(Buffer buf, int messageSizeMax);
+ void checkSendSize(Buffer buf);
}
diff --git a/java/src/Ice/src/main/java/IceInternal/UdpTransceiver.java b/java/src/Ice/src/main/java/IceInternal/UdpTransceiver.java
index c8de356ea6e..e0690efacd9 100644
--- a/java/src/Ice/src/main/java/IceInternal/UdpTransceiver.java
+++ b/java/src/Ice/src/main/java/IceInternal/UdpTransceiver.java
@@ -325,13 +325,8 @@ final class UdpTransceiver implements Transceiver
}
@Override
- public void checkSendSize(Buffer buf, int messageSizeMax)
+ public void checkSendSize(Buffer buf)
{
- if(buf.size() > messageSizeMax)
- {
- Ex.throwMemoryLimitException(buf.size(), messageSizeMax);
- }
-
//
// The maximum packetSize is either the maximum allowable UDP packet size, or
// the UDP send buffer size (which ever is smaller).
diff --git a/java/src/Ice/src/main/java/IceInternal/WSTransceiver.java b/java/src/Ice/src/main/java/IceInternal/WSTransceiver.java
index 43560c51945..7451d818389 100644
--- a/java/src/Ice/src/main/java/IceInternal/WSTransceiver.java
+++ b/java/src/Ice/src/main/java/IceInternal/WSTransceiver.java
@@ -482,9 +482,9 @@ final class WSTransceiver implements Transceiver
}
@Override
- public void checkSendSize(Buffer buf, int messageSizeMax)
+ public void checkSendSize(Buffer buf)
{
- _delegate.checkSendSize(buf, messageSizeMax);
+ _delegate.checkSendSize(buf);
}
WSTransceiver(ProtocolInstance instance, Transceiver del, String host, int port, String resource)
@@ -532,7 +532,7 @@ final class WSTransceiver implements Transceiver
_state = StateInitializeDelegate;
_parser = new HttpParser();
_readState = ReadStateOpcode;
- _readBuffer = new Buffer(0, false, java.nio.ByteOrder.BIG_ENDIAN); // Use network byte order.
+ _readBuffer = new Buffer(false, java.nio.ByteOrder.BIG_ENDIAN); // Use network byte order.
_readBufferSize = 1024;
_readLastFrame = false;
_readOpCode = 0;
@@ -540,7 +540,7 @@ final class WSTransceiver implements Transceiver
_readPayloadLength = 0;
_readMask = new byte[4];
_writeState = WriteStateHeader;
- _writeBuffer = new Buffer(0, false, java.nio.ByteOrder.BIG_ENDIAN); // Use network byte order.
+ _writeBuffer = new Buffer(false, java.nio.ByteOrder.BIG_ENDIAN); // Use network byte order.
_writeBufferSize = 1024;
_readMask = new byte[4];
_writeMask = new byte[4];
diff --git a/java/src/Ice/src/main/java/IceSSL/TransceiverI.java b/java/src/Ice/src/main/java/IceSSL/TransceiverI.java
index c2a63efaf0b..937d6cea068 100644
--- a/java/src/Ice/src/main/java/IceSSL/TransceiverI.java
+++ b/java/src/Ice/src/main/java/IceSSL/TransceiverI.java
@@ -249,12 +249,8 @@ final class TransceiverI implements IceInternal.Transceiver
}
@Override
- public void checkSendSize(IceInternal.Buffer buf, int messageSizeMax)
+ public void checkSendSize(IceInternal.Buffer buf)
{
- if(buf.size() > messageSizeMax)
- {
- IceInternal.Ex.throwMemoryLimitException(buf.size(), messageSizeMax);
- }
}
TransceiverI(Instance instance, javax.net.ssl.SSLEngine engine, IceInternal.StreamSocket stream, String host,