diff --git a/src/main/java/org/redkale/net/Response.java b/src/main/java/org/redkale/net/Response.java index 388e4bc24..f41c500f6 100644 --- a/src/main/java/org/redkale/net/Response.java +++ b/src/main/java/org/redkale/net/Response.java @@ -344,12 +344,11 @@ public abstract class Response> { } this.recycleListener = null; } - boolean completed = request.completed; if (request.keepAlive && (request.pipelineIndex == 0 || request.pipelineCompleted)) { AsyncConnection conn = removeChannel(); if (conn != null && conn.protocolCodec != null) { this.responseConsumer.accept(this); - if (!completed) { + if (!request.completed) { conn.readRegister(conn.protocolCodec); this.readRegistered = true; } diff --git a/src/main/java/org/redkale/util/ByteArray.java b/src/main/java/org/redkale/util/ByteArray.java index c7f238bfa..8b3788dab 100644 --- a/src/main/java/org/redkale/util/ByteArray.java +++ b/src/main/java/org/redkale/util/ByteArray.java @@ -76,6 +76,10 @@ public final class ByteArray implements ByteTuple { return true; } + public ByteBuffer wrapByteBuffer() { + return ByteBuffer.wrap(content, 0, count); + } + public ReadableByteChannel toChannel() { final byte[] bytes = getBytes(); final AtomicInteger offset = new AtomicInteger(); @@ -893,22 +897,6 @@ public final class ByteArray implements ByteTuple { return put((byte) value); } - /** - * 写入一个byte值 - * - * @param value byte值 - * @return ByteArray - */ - public ByteArray put(byte value) { - if (count >= content.length - 1) { - byte[] ns = new byte[content.length + 8]; - System.arraycopy(content, 0, ns, 0, count); - this.content = ns; - } - content[count++] = value; - return this; - } - /** * 写入一个byte值 * @@ -942,6 +930,60 @@ public final class ByteArray implements ByteTuple { return this; } + /** + * 写入一个byte值 + * + * @param value byte值 + * @return ByteArray + */ + public ByteArray put(byte value) { + if (count >= content.length - 1) { + byte[] ns = new byte[content.length + 8]; + System.arraycopy(content, 0, ns, 0, count); + this.content = ns; + } + content[count++] = value; + return this; + } + + /** + * 写入两个byte值 + * + * @param value1 byte值 + * @param value2 byte值 + * @return ByteArray + */ + public ByteArray put(byte value1, byte value2) { + if (count >= content.length - 2) { + byte[] ns = new byte[content.length + 8]; + System.arraycopy(content, 0, ns, 0, count); + this.content = ns; + } + content[count++] = value1; + content[count++] = value2; + return this; + } + + /** + * 写入三个byte值 + * + * @param value1 byte值 + * @param value2 byte值 + * @param value3 byte值 + * @return ByteArray + */ + public ByteArray put(byte value1, byte value2, byte value3) { + if (count >= content.length - 3) { + byte[] ns = new byte[content.length + 8]; + System.arraycopy(content, 0, ns, 0, count); + this.content = ns; + } + content[count++] = value1; + content[count++] = value2; + content[count++] = value3; + return this; + } + /** * 写入一组byte值 *