Hi Jeremy Attached is a patch that fixes a situation where the Java client might sometimes drop partially received messages. If this happens, the muscle client will probably also disconnect immediately afterwards. Lior
diff -Nur com/lcs/muscle/client/MessageTransceiver.java com/lcs/muscle/client/MessageTransceiver.java --- com/lcs/muscle/client/MessageTransceiver.java 2007-02-02 23:14:40.000000000 +0200 +++ com/lcs/muscle/client/MessageTransceiver.java 2007-03-20 12:31:11.000000000 +0200 @@ -345,6 +345,7 @@ buffer.mark(); sendReply(_gateway.unflattenMessage(buffer)); } + buffer.compact(); } catch (NotEnoughDataException ned) { @@ -362,8 +363,6 @@ ByteBuffer tmp = ByteBuffer.allocate(desiredSize); tmp.order(ByteOrder.LITTLE_ENDIAN); tmp.put(buffer); - tmp.limit(tmp.position()); - tmp.rewind(); buffer = tmp; } else { @@ -371,8 +370,12 @@ throw new UnflattenFormatException("Incoming message too large: "+(buffer.capacity() + ned.getNumMissingBytes())+"/"+maxIncomingMessageSize); } } + else { + int newPosition = eodPosition - buffer.position(); + buffer.compact(); + buffer.position(newPosition); + } } - buffer.compact(); } } catch(Exception ex) {