Issue #437 - Avoid NPE on receiving empty message though MessageHandler.Partial

Minor updates to use features elsewhere in Jetty.
This commit is contained in:
Joakim Erdfelt 2016-03-22 12:51:04 -07:00
parent 995eba0f66
commit f2216ad108
2 changed files with 8 additions and 8 deletions

View File

@ -51,7 +51,7 @@ public class BinaryPartialMessage implements MessageAppender
// Supported Partial<> Type #1: ByteBuffer // Supported Partial<> Type #1: ByteBuffer
if (msgWrapper.isMessageType(ByteBuffer.class)) if (msgWrapper.isMessageType(ByteBuffer.class))
{ {
partialHandler.onMessage(payload==null?ByteBuffer.allocate(0): partialHandler.onMessage(payload==null?BufferUtil.EMPTY_BUFFER:
payload.slice(),isLast); payload.slice(),isLast);
return; return;
} }

View File

@ -18,12 +18,12 @@
package org.eclipse.jetty.websocket.jsr356; package org.eclipse.jetty.websocket.jsr356;
import static org.hamcrest.Matchers.instanceOf;
import java.io.IOException; import java.io.IOException;
import java.net.URI; import java.net.URI;
import java.nio.ByteBuffer; import java.nio.ByteBuffer;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
@ -45,6 +45,8 @@ import org.junit.Before;
import org.junit.BeforeClass; import org.junit.BeforeClass;
import org.junit.Test; import org.junit.Test;
import static org.hamcrest.Matchers.instanceOf;
/** /**
* This class tests receiving of messages by different types of {@link MessageHandler} * This class tests receiving of messages by different types of {@link MessageHandler}
*/ */
@ -57,11 +59,9 @@ public class MessageReceivingTest {
private final String VERY_LONG_STRING; private final String VERY_LONG_STRING;
public MessageReceivingTest() { public MessageReceivingTest() {
final StringBuilder sb = new StringBuilder(); byte raw[] = new byte[1024 * 1024];
for (int i = 0; i < 1024 * 1024; i++) { Arrays.fill(raw, (byte)'x');
sb.append(i & 1); VERY_LONG_STRING = new String(raw, StandardCharsets.UTF_8);
}
VERY_LONG_STRING = sb.toString();
} }
@BeforeClass @BeforeClass