Merge remote-tracking branch 'origin/jetty-9.4.x' into jetty-10.0.x
This commit is contained in:
commit
3b33ed2af2
|
@ -475,8 +475,8 @@ public class HttpOutput extends ServletOutputStream implements Runnable
|
||||||
synchronized (_channelState)
|
synchronized (_channelState)
|
||||||
{
|
{
|
||||||
_state = State.CLOSED;
|
_state = State.CLOSED;
|
||||||
|
releaseBuffer();
|
||||||
}
|
}
|
||||||
releaseBuffer();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -601,10 +601,13 @@ public class HttpOutput extends ServletOutputStream implements Runnable
|
||||||
|
|
||||||
public ByteBuffer getBuffer()
|
public ByteBuffer getBuffer()
|
||||||
{
|
{
|
||||||
return _aggregate;
|
synchronized (_channelState)
|
||||||
|
{
|
||||||
|
return acquireBuffer();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public ByteBuffer acquireBuffer()
|
private ByteBuffer acquireBuffer()
|
||||||
{
|
{
|
||||||
if (_aggregate == null)
|
if (_aggregate == null)
|
||||||
_aggregate = _channel.getByteBufferPool().acquire(getBufferSize(), _channel.isUseOutputDirectByteBuffers());
|
_aggregate = _channel.getByteBufferPool().acquire(getBufferSize(), _channel.isUseOutputDirectByteBuffers());
|
||||||
|
@ -1362,10 +1365,13 @@ public class HttpOutput extends ServletOutputStream implements Runnable
|
||||||
|
|
||||||
public void resetBuffer()
|
public void resetBuffer()
|
||||||
{
|
{
|
||||||
_interceptor.resetBuffer();
|
synchronized (_channelState)
|
||||||
if (BufferUtil.hasContent(_aggregate))
|
{
|
||||||
BufferUtil.clear(_aggregate);
|
_interceptor.resetBuffer();
|
||||||
_written = 0;
|
if (BufferUtil.hasContent(_aggregate))
|
||||||
|
BufferUtil.clear(_aggregate);
|
||||||
|
_written = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -298,7 +298,7 @@ public class ErrorHandler extends AbstractHandler
|
||||||
// TODO error page may cause a BufferOverflow. In which case we try
|
// TODO error page may cause a BufferOverflow. In which case we try
|
||||||
// TODO again with stacks disabled. If it still overflows, it is
|
// TODO again with stacks disabled. If it still overflows, it is
|
||||||
// TODO written without a body.
|
// TODO written without a body.
|
||||||
ByteBuffer buffer = baseRequest.getResponse().getHttpOutput().acquireBuffer();
|
ByteBuffer buffer = baseRequest.getResponse().getHttpOutput().getBuffer();
|
||||||
ByteBufferOutputStream out = new ByteBufferOutputStream(buffer);
|
ByteBufferOutputStream out = new ByteBufferOutputStream(buffer);
|
||||||
PrintWriter writer = new PrintWriter(new OutputStreamWriter(out, charset));
|
PrintWriter writer = new PrintWriter(new OutputStreamWriter(out, charset));
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue