Fixed reading multiple objects from one message

This commit is contained in:
Kai S. K. Engelbart 2020-01-29 16:20:57 +01:00
parent ad937bd154
commit a95eb07dae

View File

@ -5,7 +5,10 @@ import java.nio.ByteBuffer;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import com.jenkov.nioserver.*; import com.jenkov.nioserver.IMessageReader;
import com.jenkov.nioserver.Message;
import com.jenkov.nioserver.MessageBuffer;
import com.jenkov.nioserver.Socket;
import envoy.util.SerializationUtils; import envoy.util.SerializationUtils;
@ -55,8 +58,9 @@ public class ObjectMessageReader implements IMessageReader {
// Separate first complete message // Separate first complete message
if (nextMessage.length >= length) { if (nextMessage.length >= length) {
Message message = messageBuffer.getMessage(); Message message = messageBuffer.getMessage();
message.writePartialMessageToMessage(nextMessage, nextMessage.offset + length); message.writePartialMessageToMessage(nextMessage, length);
message.length = nextMessage.length - length; message.length = nextMessage.length - length;
nextMessage.length = length;
completeMessages.add(nextMessage); completeMessages.add(nextMessage);
nextMessage = message; nextMessage = message;
} }