summaryrefslogtreecommitdiff
path: root/java/src
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2014-07-04 15:28:40 +0200
committerBenoit Foucher <benoit@zeroc.com>2014-07-04 15:28:40 +0200
commit86323430604fa11132678d87c3ce2046d0dcc772 (patch)
tree51ddb0251f52cc193bc6d80347d18707d1d3d1ed /java/src
parentFixed few .gitignore files (diff)
downloadice-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.java4
-rw-r--r--java/src/IceWS/TransceiverI.java26
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");