diff options
author | Benoit Foucher <benoit@zeroc.com> | 2014-07-04 15:28:40 +0200 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2014-07-04 15:28:40 +0200 |
commit | 86323430604fa11132678d87c3ce2046d0dcc772 (patch) | |
tree | 51ddb0251f52cc193bc6d80347d18707d1d3d1ed /java/src | |
parent | Fixed few .gitignore files (diff) | |
download | ice-86323430604fa11132678d87c3ce2046d0dcc772.tar.bz2 ice-86323430604fa11132678d87c3ce2046d0dcc772.tar.xz ice-86323430604fa11132678d87c3ce2046d0dcc772.zip |
Fixed JS code to align with C++/Java/C# collocation optimization changes, support for running browser tests against Java/C#
Diffstat (limited to 'java/src')
-rw-r--r-- | java/src/Ice/ObjectPrxHelperBase.java | 4 | ||||
-rw-r--r-- | java/src/IceWS/TransceiverI.java | 26 |
2 files changed, 27 insertions, 3 deletions
diff --git a/java/src/Ice/ObjectPrxHelperBase.java b/java/src/Ice/ObjectPrxHelperBase.java index af4db1468fc..d223654a3d0 100644 --- a/java/src/Ice/ObjectPrxHelperBase.java +++ b/java/src/Ice/ObjectPrxHelperBase.java @@ -2492,8 +2492,8 @@ public class ObjectPrxHelperBase implements ObjectPrx, java.io.Serializable } public final int - __handleException(Exception ex, IceInternal.RequestHandler handler, OperationMode mode, boolean sent, Ice.IntHolder interval, - int cnt) + __handleException(Exception ex, IceInternal.RequestHandler handler, OperationMode mode, boolean sent, + Ice.IntHolder interval, int cnt) { __setRequestHandler(handler, null); // Clear the request handler diff --git a/java/src/IceWS/TransceiverI.java b/java/src/IceWS/TransceiverI.java index fff5940023b..b0ca97e0812 100644 --- a/java/src/IceWS/TransceiverI.java +++ b/java/src/IceWS/TransceiverI.java @@ -394,7 +394,23 @@ final class TransceiverI implements IceInternal.Transceiver { if(_readState == ReadStatePayload) { - s = _delegate.read(buf, moreData); + // + // If the payload length is smaller than what remains to be read, we read + // no more than the payload length. The remaining of the buffer will be + // sent over in another frame. + // + int readSz = _readPayloadLength - (buf.b.position() - _readStart); + if(buf.b.remaining() > readSz) + { + int size = buf.size(); + buf.resize(readSz, true); + s = _delegate.read(buf, moreData); + buf.resize(size, true); + } + else + { + s = _delegate.read(buf, moreData); + } } else { @@ -890,6 +906,14 @@ final class TransceiverI implements IceInternal.Transceiver } case OP_DATA: // Data frame { + if(_instance.traceLevel() >= 2) + { + _instance.logger().trace( + _instance.traceCategory(), + "received " + protocol() + " data frame with payload length of " + _readPayloadLength + + " bytes\n" + toString()); + } + if(!_readLastFrame) { throw new Ice.ProtocolException("continuation frames not supported"); |