diff --git a/jetty-core/jetty-io/src/main/java/org/eclipse/jetty/io/Content.java b/jetty-core/jetty-io/src/main/java/org/eclipse/jetty/io/Content.java index e491e3e34bcf..d622481f5ed4 100644 --- a/jetty-core/jetty-io/src/main/java/org/eclipse/jetty/io/Content.java +++ b/jetty-core/jetty-io/src/main/java/org/eclipse/jetty/io/Content.java @@ -1024,7 +1024,7 @@ default int skip(int length) */ default Chunk asReadOnly() { - if (getByteBuffer().isReadOnly()) + if (!getByteBuffer().hasRemaining() || getByteBuffer().isReadOnly()) return this; if (canRetain()) return asChunk(getByteBuffer().asReadOnlyBuffer(), isLast(), this); diff --git a/jetty-core/jetty-quic/jetty-quic-common/src/main/java/org/eclipse/jetty/quic/common/QuicStreamEndPoint.java b/jetty-core/jetty-quic/jetty-quic-common/src/main/java/org/eclipse/jetty/quic/common/QuicStreamEndPoint.java index 227af953034c..a86d7cd011cc 100644 --- a/jetty-core/jetty-quic/jetty-quic-common/src/main/java/org/eclipse/jetty/quic/common/QuicStreamEndPoint.java +++ b/jetty-core/jetty-quic/jetty-quic-common/src/main/java/org/eclipse/jetty/quic/common/QuicStreamEndPoint.java @@ -42,7 +42,6 @@ public class QuicStreamEndPoint extends AbstractEndPoint { private static final Logger LOG = LoggerFactory.getLogger(QuicStreamEndPoint.class); private static final ByteBuffer LAST_FLAG = ByteBuffer.allocate(0); - private static final ByteBuffer EMPTY_WRITABLE_BUFFER = ByteBuffer.allocate(0); private final QuicSession session; private final long streamId; @@ -272,7 +271,7 @@ public boolean onReadable() // Check if the stream was finished normally. try { - fill(EMPTY_WRITABLE_BUFFER); + fill(BufferUtil.EMPTY_BUFFER); } catch (EOFException x) { diff --git a/jetty-core/jetty-server/src/main/java/org/eclipse/jetty/server/NegotiatingServerConnection.java b/jetty-core/jetty-server/src/main/java/org/eclipse/jetty/server/NegotiatingServerConnection.java index 038e02d48c35..59b1f6eb981d 100644 --- a/jetty-core/jetty-server/src/main/java/org/eclipse/jetty/server/NegotiatingServerConnection.java +++ b/jetty-core/jetty-server/src/main/java/org/eclipse/jetty/server/NegotiatingServerConnection.java @@ -14,7 +14,6 @@ package org.eclipse.jetty.server; import java.io.IOException; -import java.nio.ByteBuffer; import java.util.List; import javax.net.ssl.SSLEngine; import javax.net.ssl.SSLEngineResult; @@ -22,13 +21,13 @@ import org.eclipse.jetty.io.AbstractConnection; import org.eclipse.jetty.io.Connection; import org.eclipse.jetty.io.EndPoint; +import org.eclipse.jetty.util.BufferUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public abstract class NegotiatingServerConnection extends AbstractConnection { private static final Logger LOG = LoggerFactory.getLogger(NegotiatingServerConnection.class); - private static final ByteBuffer EMPTY_WRITABLE_BUFFER = ByteBuffer.allocate(0); public interface CipherDiscriminator { @@ -145,7 +144,7 @@ private int fill() { try { - return getEndPoint().fill(EMPTY_WRITABLE_BUFFER); + return getEndPoint().fill(BufferUtil.EMPTY_BUFFER); } catch (IOException x) { diff --git a/jetty-core/jetty-util/src/main/java/org/eclipse/jetty/util/BufferUtil.java b/jetty-core/jetty-util/src/main/java/org/eclipse/jetty/util/BufferUtil.java index 82d39988bcd4..39d22fb451eb 100644 --- a/jetty-core/jetty-util/src/main/java/org/eclipse/jetty/util/BufferUtil.java +++ b/jetty-core/jetty-util/src/main/java/org/eclipse/jetty/util/BufferUtil.java @@ -107,7 +107,7 @@ public class BufferUtil }; public static final byte[] EMPTY_BYTES = new byte[0]; - public static final ByteBuffer EMPTY_BUFFER = ByteBuffer.wrap(EMPTY_BYTES).asReadOnlyBuffer(); + public static final ByteBuffer EMPTY_BUFFER = ByteBuffer.wrap(EMPTY_BYTES); /** * Allocate ByteBuffer in flush mode.