Mercurial Hosting > luan
changeset 1005:0e96ce3db20a
remove HttpBuffers
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Sun, 23 Oct 2016 02:42:05 -0600 |
parents | 3fa54d9d19cd |
children | 58a9c4a42292 |
files | src/org/eclipse/jetty/http/HttpBuffers.java src/org/eclipse/jetty/http/HttpBuffersImpl.java src/org/eclipse/jetty/http/HttpParser.java src/org/eclipse/jetty/io/AbstractBuffer.java src/org/eclipse/jetty/io/View.java src/org/eclipse/jetty/io/nio/ChannelEndPoint.java src/org/eclipse/jetty/server/AbstractHttpConnection.java src/org/eclipse/jetty/server/Connector.java src/org/eclipse/jetty/server/nio/BlockingChannelConnector.java src/org/eclipse/jetty/server/ssl/SslSelectChannelConnector.java |
diffstat | 10 files changed, 859 insertions(+), 1084 deletions(-) [+] |
line wrap: on
line diff
--- a/src/org/eclipse/jetty/http/HttpBuffers.java Sat Oct 22 23:00:57 2016 -0600 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,104 +0,0 @@ -// -// ======================================================================== -// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd. -// ------------------------------------------------------------------------ -// All rights reserved. This program and the accompanying materials -// are made available under the terms of the Eclipse Public License v1.0 -// and Apache License v2.0 which accompanies this distribution. -// -// The Eclipse Public License is available at -// http://www.eclipse.org/legal/epl-v10.html -// -// The Apache License v2.0 is available at -// http://www.opensource.org/licenses/apache2.0.php -// -// You may elect to redistribute this code under either of these licenses. -// ======================================================================== -// - -package org.eclipse.jetty.http; - -import org.eclipse.jetty.io.Buffers; - -/* ------------------------------------------------------------ */ -/** Abstract Buffer pool. - */ -public interface HttpBuffers -{ - /** - * @return the requestBufferSize - */ - public int getRequestBufferSize(); - - /** - * @param requestBufferSize the requestBufferSize to set - */ - public void setRequestBufferSize(int requestBufferSize); - - /** - * @return the requestHeaderSize - */ - public int getRequestHeaderSize(); - - /** - * @param requestHeaderSize the requestHeaderSize to set - */ - public void setRequestHeaderSize(int requestHeaderSize); - - /** - * @return the responseBufferSize - */ - public int getResponseBufferSize(); - - /** - * @param responseBufferSize the responseBufferSize to set - */ - public void setResponseBufferSize(int responseBufferSize); - - /** - * @return the responseHeaderSize - */ - public int getResponseHeaderSize(); - - /** - * @param responseHeaderSize the responseHeaderSize to set - */ - public void setResponseHeaderSize(int responseHeaderSize); - - /** - * @return the requestBufferType - */ - public Buffers.Type getRequestBufferType(); - - /** - * @return the requestHeaderType - */ - public Buffers.Type getRequestHeaderType(); - - /** - * @return the responseBufferType - */ - public Buffers.Type getResponseBufferType(); - - /** - * @return the responseHeaderType - */ - public Buffers.Type getResponseHeaderType(); - - /** - * @param requestBuffers the requestBuffers to set - */ - public void setRequestBuffers(Buffers requestBuffers); - - /** - * @param responseBuffers the responseBuffers to set - */ - public void setResponseBuffers(Buffers responseBuffers); - - public Buffers getRequestBuffers(); - - public Buffers getResponseBuffers(); - - public int getMaxBuffers(); - -}
--- a/src/org/eclipse/jetty/http/HttpBuffersImpl.java Sat Oct 22 23:00:57 2016 -0600 +++ b/src/org/eclipse/jetty/http/HttpBuffersImpl.java Sun Oct 23 02:42:05 2016 -0600 @@ -27,7 +27,7 @@ * simple unbounded pool of buffers for header, request and response sizes. * */ -public final class HttpBuffersImpl extends AbstractLifeCycle implements HttpBuffers +public final class HttpBuffersImpl extends AbstractLifeCycle { private int _requestBufferSize=16*1024; private int _requestHeaderSize=6*1024;
--- a/src/org/eclipse/jetty/http/HttpParser.java Sat Oct 22 23:00:57 2016 -0600 +++ b/src/org/eclipse/jetty/http/HttpParser.java Sun Oct 23 02:42:05 2016 -0600 @@ -67,8 +67,8 @@ private Buffer _body; // Buffer for large content private Buffer _buffer; // The current buffer in use (either _header or _content) private CachedBuffer _cached; - private final View.CaseInsensitive _tok0; // Saved token: header name, request method or response version - private final View.CaseInsensitive _tok1; // Saved token: header value, request URI or response code + private final View.CaseInsensitive _tok0 = new View.CaseInsensitive(); // Saved token: header name, request method or response version + private final View.CaseInsensitive _tok1 = new View.CaseInsensitive(); // Saved token: header value, request URI or response code private String _multiLineValue; private int _responseStatus; // If >0 then we are parsing a response private boolean _persistent; @@ -88,8 +88,6 @@ _buffers = buffers; _endp = endp; _handler = handler; - _tok0 = new View.CaseInsensitive(); - _tok1 = new View.CaseInsensitive(); } public long getContentLength()
--- a/src/org/eclipse/jetty/io/AbstractBuffer.java Sat Oct 22 23:00:57 2016 -0600 +++ b/src/org/eclipse/jetty/io/AbstractBuffer.java Sun Oct 23 02:42:05 2016 -0600 @@ -33,696 +33,696 @@ */ public abstract class AbstractBuffer implements Buffer { - private static final Logger LOG = LoggerFactory.getLogger(AbstractBuffer.class); + private static final Logger LOG = LoggerFactory.getLogger(AbstractBuffer.class); - private final static boolean __boundsChecking = Boolean.getBoolean("org.eclipse.jetty.io.AbstractBuffer.boundsChecking"); - - protected final static String - __IMMUTABLE = "IMMUTABLE", - __READONLY = "READONLY", - __READWRITE = "READWRITE", - __VOLATILE = "VOLATILE"; - - protected int _access; - protected boolean _volatile; + private final static boolean __boundsChecking = Boolean.getBoolean("org.eclipse.jetty.io.AbstractBuffer.boundsChecking"); + + protected final static String + __IMMUTABLE = "IMMUTABLE", + __READONLY = "READONLY", + __READWRITE = "READWRITE", + __VOLATILE = "VOLATILE"; + + protected int _access; + protected boolean _volatile; - protected int _get; - protected int _put; - protected int _hash; - protected int _hashGet; - protected int _hashPut; - protected int _mark; - protected String _string; - protected View _view; + protected int _get; + protected int _put; + protected int _hash; + protected int _hashGet; + protected int _hashPut; + protected int _mark; + protected String _string; + protected View _view; - /** - * Constructor for BufferView - * - * @param access 0==IMMUTABLE, 1==READONLY, 2==READWRITE - */ - public AbstractBuffer(int access, boolean isVolatile) - { - if (access == IMMUTABLE && isVolatile) - throw new IllegalArgumentException("IMMUTABLE && VOLATILE"); - setMarkIndex(-1); - _access = access; - _volatile = isVolatile; - } + /** + * Constructor for BufferView + * + * @param access 0==IMMUTABLE, 1==READONLY, 2==READWRITE + */ + public AbstractBuffer(int access, boolean isVolatile) + { + if (access == IMMUTABLE && isVolatile) + throw new IllegalArgumentException("IMMUTABLE && VOLATILE"); + setMarkIndex(-1); + _access = access; + _volatile = isVolatile; + } - /* - * @see org.eclipse.io.Buffer#toArray() - */ - public byte[] asArray() - { - byte[] bytes = new byte[length()]; - byte[] array = array(); - if (array != null) - System.arraycopy(array, getIndex(), bytes, 0, bytes.length); - else - peek(getIndex(), bytes, 0, length()); - return bytes; - } + /* + * @see org.eclipse.io.Buffer#toArray() + */ + public byte[] asArray() + { + byte[] bytes = new byte[length()]; + byte[] array = array(); + if (array != null) + System.arraycopy(array, getIndex(), bytes, 0, bytes.length); + else + peek(getIndex(), bytes, 0, length()); + return bytes; + } - public ByteArrayBuffer duplicate(int access) - { - Buffer b=this.buffer(); - if (this instanceof Buffer.CaseInsensitve || b instanceof Buffer.CaseInsensitve) - return new ByteArrayBuffer.CaseInsensitive(asArray(), 0, length(),access); - else - return new ByteArrayBuffer(asArray(), 0, length(), access); - } - - /* - * @see org.eclipse.io.Buffer#asNonVolatile() - */ - public Buffer asNonVolatileBuffer() - { - if (!isVolatile()) return this; - return duplicate(_access); - } + private ByteArrayBuffer duplicate(int access) + { + Buffer b=this.buffer(); + if (this instanceof Buffer.CaseInsensitve || b instanceof Buffer.CaseInsensitve) + return new ByteArrayBuffer.CaseInsensitive(asArray(), 0, length(),access); + else + return new ByteArrayBuffer(asArray(), 0, length(), access); + } + + /* + * @see org.eclipse.io.Buffer#asNonVolatile() + */ + public Buffer asNonVolatileBuffer() + { + if (!isVolatile()) return this; + return duplicate(_access); + } - public Buffer asImmutableBuffer() - { - if (isImmutable()) return this; - return duplicate(IMMUTABLE); - } + public Buffer asImmutableBuffer() + { + if (isImmutable()) return this; + return duplicate(IMMUTABLE); + } - /* - * @see org.eclipse.util.Buffer#asReadOnlyBuffer() - */ - public Buffer asReadOnlyBuffer() - { - if (isReadOnly()) return this; - return new View(this, markIndex(), getIndex(), putIndex(), READONLY); - } + /* + * @see org.eclipse.util.Buffer#asReadOnlyBuffer() + */ + public Buffer asReadOnlyBuffer() + { + if (isReadOnly()) return this; + return new View(this, markIndex(), getIndex(), putIndex(), READONLY); + } - public Buffer asMutableBuffer() - { - if (!isImmutable()) return this; - - Buffer b=this.buffer(); - if (b.isReadOnly()) - { - return duplicate(READWRITE); - } - return new View(b, markIndex(), getIndex(), putIndex(), _access); - } + public Buffer asMutableBuffer() + { + if (!isImmutable()) return this; + + Buffer b=this.buffer(); + if (b.isReadOnly()) + { + return duplicate(READWRITE); + } + return new View(b, markIndex(), getIndex(), putIndex(), _access); + } - public Buffer buffer() - { - return this; - } + public Buffer buffer() + { + return this; + } - public void clear() - { - setMarkIndex(-1); - setGetIndex(0); - setPutIndex(0); - } + public void clear() + { + setMarkIndex(-1); + setGetIndex(0); + setPutIndex(0); + } - public void compact() - { - if (isReadOnly()) throw new IllegalStateException(__READONLY); - int s = markIndex() >= 0 ? markIndex() : getIndex(); - if (s > 0) - { - byte array[] = array(); - int length = putIndex() - s; - if (length > 0) - { - if (array != null) - System.arraycopy(array(), s, array(), 0, length); - else - poke(0, peek(s, length)); - } - if (markIndex() > 0) setMarkIndex(markIndex() - s); - setGetIndex(getIndex() - s); - setPutIndex(putIndex() - s); - } - } + public void compact() + { + if (isReadOnly()) throw new IllegalStateException(__READONLY); + int s = markIndex() >= 0 ? markIndex() : getIndex(); + if (s > 0) + { + byte array[] = array(); + int length = putIndex() - s; + if (length > 0) + { + if (array != null) + System.arraycopy(array(), s, array(), 0, length); + else + poke(0, peek(s, length)); + } + if (markIndex() > 0) setMarkIndex(markIndex() - s); + setGetIndex(getIndex() - s); + setPutIndex(putIndex() - s); + } + } - @Override - public boolean equals(Object obj) - { - if (obj==this) - return true; - - // reject non buffers; - if (obj == null || !(obj instanceof Buffer)) return false; - Buffer b = (Buffer) obj; + @Override + public boolean equals(Object obj) + { + if (obj==this) + return true; + + // reject non buffers; + if (obj == null || !(obj instanceof Buffer)) return false; + Buffer b = (Buffer) obj; - if (this instanceof Buffer.CaseInsensitve || b instanceof Buffer.CaseInsensitve) - return equalsIgnoreCase(b); - - // reject different lengths - if (b.length() != length()) return false; + if (this instanceof Buffer.CaseInsensitve || b instanceof Buffer.CaseInsensitve) + return equalsIgnoreCase(b); + + // reject different lengths + if (b.length() != length()) return false; - // reject AbstractBuffer with different hash value - if (_hash != 0 && obj instanceof AbstractBuffer) - { - AbstractBuffer ab = (AbstractBuffer) obj; - if (ab._hash != 0 && _hash != ab._hash) return false; - } + // reject AbstractBuffer with different hash value + if (_hash != 0 && obj instanceof AbstractBuffer) + { + AbstractBuffer ab = (AbstractBuffer) obj; + if (ab._hash != 0 && _hash != ab._hash) return false; + } - // Nothing for it but to do the hard grind. - int get=getIndex(); - int bi=b.putIndex(); - for (int i = putIndex(); i-->get;) - { - byte b1 = peek(i); - byte b2 = b.peek(--bi); - if (b1 != b2) return false; - } - return true; - } + // Nothing for it but to do the hard grind. + int get=getIndex(); + int bi=b.putIndex(); + for (int i = putIndex(); i-->get;) + { + byte b1 = peek(i); + byte b2 = b.peek(--bi); + if (b1 != b2) return false; + } + return true; + } - public boolean equalsIgnoreCase(Buffer b) - { - if (b==this) - return true; - - // reject different lengths - if (b.length() != length()) return false; + public boolean equalsIgnoreCase(Buffer b) + { + if (b==this) + return true; + + // reject different lengths + if (b.length() != length()) return false; - // reject AbstractBuffer with different hash value - if (_hash != 0 && b instanceof AbstractBuffer) - { - AbstractBuffer ab = (AbstractBuffer) b; - if (ab._hash != 0 && _hash != ab._hash) return false; - } + // reject AbstractBuffer with different hash value + if (_hash != 0 && b instanceof AbstractBuffer) + { + AbstractBuffer ab = (AbstractBuffer) b; + if (ab._hash != 0 && _hash != ab._hash) return false; + } - // Nothing for it but to do the hard grind. - int get=getIndex(); - int bi=b.putIndex(); - - byte[] array = array(); - byte[] barray= b.array(); - if (array!=null && barray!=null) - { - for (int i = putIndex(); i-->get;) - { - byte b1 = array[i]; - byte b2 = barray[--bi]; - if (b1 != b2) - { - if ('a' <= b1 && b1 <= 'z') b1 = (byte) (b1 - 'a' + 'A'); - if ('a' <= b2 && b2 <= 'z') b2 = (byte) (b2 - 'a' + 'A'); - if (b1 != b2) return false; - } - } - } - else - { - for (int i = putIndex(); i-->get;) - { - byte b1 = peek(i); - byte b2 = b.peek(--bi); - if (b1 != b2) - { - if ('a' <= b1 && b1 <= 'z') b1 = (byte) (b1 - 'a' + 'A'); - if ('a' <= b2 && b2 <= 'z') b2 = (byte) (b2 - 'a' + 'A'); - if (b1 != b2) return false; - } - } - } - return true; - } + // Nothing for it but to do the hard grind. + int get=getIndex(); + int bi=b.putIndex(); + + byte[] array = array(); + byte[] barray= b.array(); + if (array!=null && barray!=null) + { + for (int i = putIndex(); i-->get;) + { + byte b1 = array[i]; + byte b2 = barray[--bi]; + if (b1 != b2) + { + if ('a' <= b1 && b1 <= 'z') b1 = (byte) (b1 - 'a' + 'A'); + if ('a' <= b2 && b2 <= 'z') b2 = (byte) (b2 - 'a' + 'A'); + if (b1 != b2) return false; + } + } + } + else + { + for (int i = putIndex(); i-->get;) + { + byte b1 = peek(i); + byte b2 = b.peek(--bi); + if (b1 != b2) + { + if ('a' <= b1 && b1 <= 'z') b1 = (byte) (b1 - 'a' + 'A'); + if ('a' <= b2 && b2 <= 'z') b2 = (byte) (b2 - 'a' + 'A'); + if (b1 != b2) return false; + } + } + } + return true; + } - public byte get() - { - return peek(_get++); - } + public byte get() + { + return peek(_get++); + } - public int get(byte[] b, int offset, int length) - { - int gi = getIndex(); - int l=length(); - if (l==0) - return -1; - - if (length>l) - length=l; - - length = peek(gi, b, offset, length); - if (length>0) - setGetIndex(gi + length); - return length; - } + public int get(byte[] b, int offset, int length) + { + int gi = getIndex(); + int l=length(); + if (l==0) + return -1; + + if (length>l) + length=l; + + length = peek(gi, b, offset, length); + if (length>0) + setGetIndex(gi + length); + return length; + } - public Buffer get(int length) - { - int gi = getIndex(); - Buffer view = peek(gi, length); - setGetIndex(gi + length); - return view; - } + public Buffer get(int length) + { + int gi = getIndex(); + Buffer view = peek(gi, length); + setGetIndex(gi + length); + return view; + } - public final int getIndex() - { - return _get; - } + public final int getIndex() + { + return _get; + } - public boolean hasContent() - { - return _put > _get; - } - - @Override - public int hashCode() - { - if (_hash == 0 || _hashGet!=_get || _hashPut!=_put) - { - int get=getIndex(); - byte[] array = array(); - if (array==null) - { - for (int i = putIndex(); i-- >get;) - { - byte b = peek(i); - if ('a' <= b && b <= 'z') - b = (byte) (b - 'a' + 'A'); - _hash = 31 * _hash + b; - } - } - else - { - for (int i = putIndex(); i-- >get;) - { - byte b = array[i]; - if ('a' <= b && b <= 'z') - b = (byte) (b - 'a' + 'A'); - _hash = 31 * _hash + b; - } - } - if (_hash == 0) - _hash = -1; - _hashGet=_get; - _hashPut=_put; - - } - return _hash; - } + public boolean hasContent() + { + return _put > _get; + } + + @Override + public int hashCode() + { + if (_hash == 0 || _hashGet!=_get || _hashPut!=_put) + { + int get=getIndex(); + byte[] array = array(); + if (array==null) + { + for (int i = putIndex(); i-- >get;) + { + byte b = peek(i); + if ('a' <= b && b <= 'z') + b = (byte) (b - 'a' + 'A'); + _hash = 31 * _hash + b; + } + } + else + { + for (int i = putIndex(); i-- >get;) + { + byte b = array[i]; + if ('a' <= b && b <= 'z') + b = (byte) (b - 'a' + 'A'); + _hash = 31 * _hash + b; + } + } + if (_hash == 0) + _hash = -1; + _hashGet=_get; + _hashPut=_put; + + } + return _hash; + } - public boolean isImmutable() - { - return _access <= IMMUTABLE; - } + public boolean isImmutable() + { + return _access <= IMMUTABLE; + } - public boolean isReadOnly() - { - return _access <= READONLY; - } + public boolean isReadOnly() + { + return _access <= READONLY; + } - public boolean isVolatile() - { - return _volatile; - } + public boolean isVolatile() + { + return _volatile; + } - public int length() - { - return _put - _get; - } + public int length() + { + return _put - _get; + } - public void mark() - { - setMarkIndex(_get - 1); - } + public void mark() + { + setMarkIndex(_get - 1); + } - public void mark(int offset) - { - setMarkIndex(_get + offset); - } + public void mark(int offset) + { + setMarkIndex(_get + offset); + } - public int markIndex() - { - return _mark; - } + public int markIndex() + { + return _mark; + } - public byte peek() - { - return peek(_get); - } + public byte peek() + { + return peek(_get); + } - public Buffer peek(int index, int length) - { - if (_view == null) - { - _view = new View(this, -1, index, index + length, isReadOnly() ? READONLY : READWRITE); - } - else - { - _view.update(this.buffer()); - _view.setMarkIndex(-1); - _view.setGetIndex(0); - _view.setPutIndex(index + length); - _view.setGetIndex(index); - - } - return _view; - } + public Buffer peek(int index, int length) + { + if (_view == null) + { + _view = new View(this, -1, index, index + length, isReadOnly() ? READONLY : READWRITE); + } + else + { + _view.update(this.buffer()); + _view.setMarkIndex(-1); + _view.setGetIndex(0); + _view.setPutIndex(index + length); + _view.setGetIndex(index); + + } + return _view; + } - public int poke(int index, Buffer src) - { - _hash=0; - /* - if (isReadOnly()) - throw new IllegalStateException(__READONLY); - if (index < 0) - throw new IllegalArgumentException("index<0: " + index + "<0"); - */ - - int length=src.length(); - if (index + length > capacity()) - { - length=capacity()-index; - /* - if (length<0) - throw new IllegalArgumentException("index>capacity(): " + index + ">" + capacity()); - */ - } - - byte[] src_array = src.array(); - byte[] dst_array = array(); - if (src_array != null && dst_array != null) - System.arraycopy(src_array, src.getIndex(), dst_array, index, length); - else if (src_array != null) - { - int s=src.getIndex(); - for (int i=0;i<length;i++) - poke(index++,src_array[s++]); - } - else if (dst_array != null) - { - int s=src.getIndex(); - for (int i=0;i<length;i++) - dst_array[index++]=src.peek(s++); - } - else - { - int s=src.getIndex(); - for (int i=0;i<length;i++) - poke(index++,src.peek(s++)); - } - - return length; - } - + public int poke(int index, Buffer src) + { + _hash=0; + /* + if (isReadOnly()) + throw new IllegalStateException(__READONLY); + if (index < 0) + throw new IllegalArgumentException("index<0: " + index + "<0"); + */ + + int length=src.length(); + if (index + length > capacity()) + { + length=capacity()-index; + /* + if (length<0) + throw new IllegalArgumentException("index>capacity(): " + index + ">" + capacity()); + */ + } + + byte[] src_array = src.array(); + byte[] dst_array = array(); + if (src_array != null && dst_array != null) + System.arraycopy(src_array, src.getIndex(), dst_array, index, length); + else if (src_array != null) + { + int s=src.getIndex(); + for (int i=0;i<length;i++) + poke(index++,src_array[s++]); + } + else if (dst_array != null) + { + int s=src.getIndex(); + for (int i=0;i<length;i++) + dst_array[index++]=src.peek(s++); + } + else + { + int s=src.getIndex(); + for (int i=0;i<length;i++) + poke(index++,src.peek(s++)); + } + + return length; + } + - public int poke(int index, byte[] b, int offset, int length) - { - _hash=0; - /* - if (isReadOnly()) - throw new IllegalStateException(__READONLY); - if (index < 0) - throw new IllegalArgumentException("index<0: " + index + "<0"); - */ - if (index + length > capacity()) - { - length=capacity()-index; - /* if (length<0) - throw new IllegalArgumentException("index>capacity(): " + index + ">" + capacity()); - */ - } - - byte[] dst_array = array(); - if (dst_array != null) - System.arraycopy(b, offset, dst_array, index, length); - else - { - int s=offset; - for (int i=0;i<length;i++) - poke(index++,b[s++]); - } - return length; - } + public int poke(int index, byte[] b, int offset, int length) + { + _hash=0; + /* + if (isReadOnly()) + throw new IllegalStateException(__READONLY); + if (index < 0) + throw new IllegalArgumentException("index<0: " + index + "<0"); + */ + if (index + length > capacity()) + { + length=capacity()-index; + /* if (length<0) + throw new IllegalArgumentException("index>capacity(): " + index + ">" + capacity()); + */ + } + + byte[] dst_array = array(); + if (dst_array != null) + System.arraycopy(b, offset, dst_array, index, length); + else + { + int s=offset; + for (int i=0;i<length;i++) + poke(index++,b[s++]); + } + return length; + } - public int put(Buffer src) - { - int pi = putIndex(); - int l=poke(pi, src); - setPutIndex(pi + l); - return l; - } + public int put(Buffer src) + { + int pi = putIndex(); + int l=poke(pi, src); + setPutIndex(pi + l); + return l; + } - public void put(byte b) - { - int pi = putIndex(); - poke(pi, b); - setPutIndex(pi + 1); - } + public void put(byte b) + { + int pi = putIndex(); + poke(pi, b); + setPutIndex(pi + 1); + } - public int put(byte[] b, int offset, int length) - { - int pi = putIndex(); - int l = poke(pi, b, offset, length); - setPutIndex(pi + l); - return l; - } - - public int put(byte[] b) - { - int pi = putIndex(); - int l = poke(pi, b, 0, b.length); - setPutIndex(pi + l); - return l; - } + public int put(byte[] b, int offset, int length) + { + int pi = putIndex(); + int l = poke(pi, b, offset, length); + setPutIndex(pi + l); + return l; + } + + public int put(byte[] b) + { + int pi = putIndex(); + int l = poke(pi, b, 0, b.length); + setPutIndex(pi + l); + return l; + } - public final int putIndex() - { - return _put; - } + public final int putIndex() + { + return _put; + } - public void reset() - { - if (markIndex() >= 0) setGetIndex(markIndex()); - } + public void reset() + { + if (markIndex() >= 0) setGetIndex(markIndex()); + } - public void rewind() - { - setGetIndex(0); - setMarkIndex(-1); - } + public void rewind() + { + setGetIndex(0); + setMarkIndex(-1); + } - public void setGetIndex(int getIndex) - { - /* bounds checking - if (isImmutable()) - throw new IllegalStateException(__IMMUTABLE); - if (getIndex < 0) - throw new IllegalArgumentException("getIndex<0: " + getIndex + "<0"); - if (getIndex > putIndex()) - throw new IllegalArgumentException("getIndex>putIndex: " + getIndex + ">" + putIndex()); - */ - _get = getIndex; - _hash=0; - } + public void setGetIndex(int getIndex) + { + /* bounds checking + if (isImmutable()) + throw new IllegalStateException(__IMMUTABLE); + if (getIndex < 0) + throw new IllegalArgumentException("getIndex<0: " + getIndex + "<0"); + if (getIndex > putIndex()) + throw new IllegalArgumentException("getIndex>putIndex: " + getIndex + ">" + putIndex()); + */ + _get = getIndex; + _hash=0; + } - public void setMarkIndex(int index) - { - /* - if (index>=0 && isImmutable()) - throw new IllegalStateException(__IMMUTABLE); - */ - _mark = index; - } + public void setMarkIndex(int index) + { + /* + if (index>=0 && isImmutable()) + throw new IllegalStateException(__IMMUTABLE); + */ + _mark = index; + } - public void setPutIndex(int putIndex) - { - /* bounds checking - if (isImmutable()) - throw new IllegalStateException(__IMMUTABLE); - if (putIndex > capacity()) - throw new IllegalArgumentException("putIndex>capacity: " + putIndex + ">" + capacity()); - if (getIndex() > putIndex) - throw new IllegalArgumentException("getIndex>putIndex: " + getIndex() + ">" + putIndex); - */ - _put = putIndex; - _hash=0; - } + public void setPutIndex(int putIndex) + { + /* bounds checking + if (isImmutable()) + throw new IllegalStateException(__IMMUTABLE); + if (putIndex > capacity()) + throw new IllegalArgumentException("putIndex>capacity: " + putIndex + ">" + capacity()); + if (getIndex() > putIndex) + throw new IllegalArgumentException("getIndex>putIndex: " + getIndex() + ">" + putIndex); + */ + _put = putIndex; + _hash=0; + } - public int skip(int n) - { - if (length() < n) n = length(); - setGetIndex(getIndex() + n); - return n; - } + public int skip(int n) + { + if (length() < n) n = length(); + setGetIndex(getIndex() + n); + return n; + } - public Buffer slice() - { - return peek(getIndex(), length()); - } + public Buffer slice() + { + return peek(getIndex(), length()); + } - public Buffer sliceFromMark() - { - return sliceFromMark(getIndex() - markIndex() - 1); - } + public Buffer sliceFromMark() + { + return sliceFromMark(getIndex() - markIndex() - 1); + } - public Buffer sliceFromMark(int length) - { - if (markIndex() < 0) return null; - Buffer view = peek(markIndex(), length); - setMarkIndex(-1); - return view; - } + public Buffer sliceFromMark(int length) + { + if (markIndex() < 0) return null; + Buffer view = peek(markIndex(), length); + setMarkIndex(-1); + return view; + } - public int space() - { - return capacity() - _put; - } + public int space() + { + return capacity() - _put; + } - public String toDetailString() - { - StringBuilder buf = new StringBuilder(); - buf.append("["); - buf.append(super.hashCode()); - buf.append(","); - buf.append(this.buffer().hashCode()); - buf.append(",m="); - buf.append(markIndex()); - buf.append(",g="); - buf.append(getIndex()); - buf.append(",p="); - buf.append(putIndex()); - buf.append(",c="); - buf.append(capacity()); - buf.append("]={"); - if (markIndex() >= 0) - { - for (int i = markIndex(); i < getIndex(); i++) - { - byte b = peek(i); - TypeUtil.toHex(b,buf); - } - buf.append("}{"); - } - int count = 0; - for (int i = getIndex(); i < putIndex(); i++) - { - byte b = peek(i); - TypeUtil.toHex(b,buf); - if (count++ == 50) - { - if (putIndex() - i > 20) - { - buf.append(" ... "); - i = putIndex() - 20; - } - } - } - buf.append('}'); - return buf.toString(); - } + public String toDetailString() + { + StringBuilder buf = new StringBuilder(); + buf.append("["); + buf.append(super.hashCode()); + buf.append(","); + buf.append(this.buffer().hashCode()); + buf.append(",m="); + buf.append(markIndex()); + buf.append(",g="); + buf.append(getIndex()); + buf.append(",p="); + buf.append(putIndex()); + buf.append(",c="); + buf.append(capacity()); + buf.append("]={"); + if (markIndex() >= 0) + { + for (int i = markIndex(); i < getIndex(); i++) + { + byte b = peek(i); + TypeUtil.toHex(b,buf); + } + buf.append("}{"); + } + int count = 0; + for (int i = getIndex(); i < putIndex(); i++) + { + byte b = peek(i); + TypeUtil.toHex(b,buf); + if (count++ == 50) + { + if (putIndex() - i > 20) + { + buf.append(" ... "); + i = putIndex() - 20; + } + } + } + buf.append('}'); + return buf.toString(); + } - /* ------------------------------------------------------------ */ - @Override - public String toString() - { - if (isImmutable()) - { - if (_string == null) - _string = new String(asArray(), 0, length()); - return _string; - } - return new String(asArray(), 0, length()); - } + /* ------------------------------------------------------------ */ + @Override + public String toString() + { + if (isImmutable()) + { + if (_string == null) + _string = new String(asArray(), 0, length()); + return _string; + } + return new String(asArray(), 0, length()); + } - /* ------------------------------------------------------------ */ - public String toString(String charset) - { - try - { - byte[] bytes=array(); - if (bytes!=null) - return new String(bytes,getIndex(),length(),charset); - return new String(asArray(), 0, length(),charset); - - } - catch(Exception e) - { - LOG.warn("",e); - return new String(asArray(), 0, length()); - } - } + /* ------------------------------------------------------------ */ + public String toString(String charset) + { + try + { + byte[] bytes=array(); + if (bytes!=null) + return new String(bytes,getIndex(),length(),charset); + return new String(asArray(), 0, length(),charset); + + } + catch(Exception e) + { + LOG.warn("",e); + return new String(asArray(), 0, length()); + } + } - /* ------------------------------------------------------------ */ - public String toString(Charset charset) - { - try - { - byte[] bytes=array(); - if (bytes!=null) - return new String(bytes,getIndex(),length(),charset); - return new String(asArray(), 0, length(),charset); - } - catch(Exception e) - { - LOG.warn("",e); - return new String(asArray(), 0, length()); - } - } + /* ------------------------------------------------------------ */ + public String toString(Charset charset) + { + try + { + byte[] bytes=array(); + if (bytes!=null) + return new String(bytes,getIndex(),length(),charset); + return new String(asArray(), 0, length(),charset); + } + catch(Exception e) + { + LOG.warn("",e); + return new String(asArray(), 0, length()); + } + } - /* ------------------------------------------------------------ */ - public String toDebugString() - { - return getClass()+"@"+super.hashCode(); - } + /* ------------------------------------------------------------ */ + public String toDebugString() + { + return getClass()+"@"+super.hashCode(); + } - /* ------------------------------------------------------------ */ - public void writeTo(OutputStream out) - throws IOException - { - byte[] array = array(); - - if (array!=null) - { - out.write(array,getIndex(),length()); - } - else - { - int len = this.length(); - byte[] buf=new byte[len>1024?1024:len]; - int offset=_get; - while (len>0) - { - int l=peek(offset,buf,0,len>buf.length?buf.length:len); - out.write(buf,0,l); - offset+=l; - len-=l; - } - } - clear(); - } - - /* ------------------------------------------------------------ */ - public int readFrom(InputStream in,int max) throws IOException - { - byte[] array = array(); - int s=space(); - if (s>max) - s=max; + /* ------------------------------------------------------------ */ + public void writeTo(OutputStream out) + throws IOException + { + byte[] array = array(); + + if (array!=null) + { + out.write(array,getIndex(),length()); + } + else + { + int len = this.length(); + byte[] buf=new byte[len>1024?1024:len]; + int offset=_get; + while (len>0) + { + int l=peek(offset,buf,0,len>buf.length?buf.length:len); + out.write(buf,0,l); + offset+=l; + len-=l; + } + } + clear(); + } + + /* ------------------------------------------------------------ */ + public int readFrom(InputStream in,int max) throws IOException + { + byte[] array = array(); + int s=space(); + if (s>max) + s=max; - if (array!=null) - { - int l=in.read(array,_put,s); - if (l>0) - _put+=l; - return l; - } - else - { - byte[] buf=new byte[s>1024?1024:s]; - int total=0; - while (s>0) - { - int l=in.read(buf,0,buf.length); - if (l<0) - return total>0?total:-1; - int p=put(buf,0,l); - assert l==p; - s-=l; - } - return total; - } - } + if (array!=null) + { + int l=in.read(array,_put,s); + if (l>0) + _put+=l; + return l; + } + else + { + byte[] buf=new byte[s>1024?1024:s]; + int total=0; + while (s>0) + { + int l=in.read(buf,0,buf.length); + if (l<0) + return total>0?total:-1; + int p=put(buf,0,l); + assert l==p; + s-=l; + } + return total; + } + } }
--- a/src/org/eclipse/jetty/io/View.java Sat Oct 22 23:00:57 2016 -0600 +++ b/src/org/eclipse/jetty/io/View.java Sun Oct 23 02:42:05 2016 -0600 @@ -27,225 +27,225 @@ */ public class View extends AbstractBuffer { - Buffer _buffer; + Buffer _buffer; - /** - * @param buffer The <code>Buffer</code> on which we are presenting a <code>View</code>. - * @param mark The initial value of the {@link Buffer#markIndex mark index} - * @param get The initial value of the {@link Buffer#getIndex get index} - * @param put The initial value of the {@link Buffer#putIndex put index} - * @param access The access level - one of the constants from {@link Buffer}. - */ - public View(Buffer buffer, int mark, int get, int put,int access) - { - super(READWRITE,!buffer.isImmutable()); - _buffer=buffer.buffer(); - setPutIndex(put); - setGetIndex(get); - setMarkIndex(mark); - _access=access; - } - - public View(Buffer buffer) - { - super(READWRITE,!buffer.isImmutable()); - _buffer=buffer.buffer(); - setPutIndex(buffer.putIndex()); - setGetIndex(buffer.getIndex()); - setMarkIndex(buffer.markIndex()); - _access=buffer.isReadOnly()?READONLY:READWRITE; - } + /** + * @param buffer The <code>Buffer</code> on which we are presenting a <code>View</code>. + * @param mark The initial value of the {@link Buffer#markIndex mark index} + * @param get The initial value of the {@link Buffer#getIndex get index} + * @param put The initial value of the {@link Buffer#putIndex put index} + * @param access The access level - one of the constants from {@link Buffer}. + */ + public View(Buffer buffer, int mark, int get, int put,int access) + { + super(READWRITE,!buffer.isImmutable()); + _buffer=buffer.buffer(); + setPutIndex(put); + setGetIndex(get); + setMarkIndex(mark); + _access=access; + } + + public View(Buffer buffer) + { + super(READWRITE,!buffer.isImmutable()); + _buffer=buffer.buffer(); + setPutIndex(buffer.putIndex()); + setGetIndex(buffer.getIndex()); + setMarkIndex(buffer.markIndex()); + _access=buffer.isReadOnly()?READONLY:READWRITE; + } - public View() - { - super(READWRITE,true); - } - - /** - * Update view to buffer - */ - public void update(Buffer buffer) - { - _access=READWRITE; - _buffer=buffer.buffer(); - setGetIndex(0); - setPutIndex(buffer.putIndex()); - setGetIndex(buffer.getIndex()); - setMarkIndex(buffer.markIndex()); - _access=buffer.isReadOnly()?READONLY:READWRITE; - } + public View() + { + super(READWRITE,true); + } + + /** + * Update view to buffer + */ + public void update(Buffer buffer) + { + _access=READWRITE; + _buffer=buffer.buffer(); + setGetIndex(0); + setPutIndex(buffer.putIndex()); + setGetIndex(buffer.getIndex()); + setMarkIndex(buffer.markIndex()); + _access=buffer.isReadOnly()?READONLY:READWRITE; + } - public void update(int get, int put) - { - int a=_access; - _access=READWRITE; - setGetIndex(0); - setPutIndex(put); - setGetIndex(get); - setMarkIndex(-1); - _access=a; - } + public void update(int get, int put) + { + int a=_access; + _access=READWRITE; + setGetIndex(0); + setPutIndex(put); + setGetIndex(get); + setMarkIndex(-1); + _access=a; + } - /** - * @return The {@link Buffer#array()} from the underlying buffer. - */ - public byte[] array() - { - return _buffer.array(); - } + /** + * @return The {@link Buffer#array()} from the underlying buffer. + */ + public byte[] array() + { + return _buffer.array(); + } - /** - * @return The {@link Buffer#buffer()} from the underlying buffer. - */ - @Override - public Buffer buffer() - { - return _buffer.buffer(); - } + /** + * @return The {@link Buffer#buffer()} from the underlying buffer. + */ + @Override + public Buffer buffer() + { + return _buffer.buffer(); + } - /** - * @return The {@link Buffer#capacity} of the underlying buffer. - */ - public int capacity() - { - return _buffer.capacity(); - } + /** + * @return The {@link Buffer#capacity} of the underlying buffer. + */ + public int capacity() + { + return _buffer.capacity(); + } - /** - * - */ - @Override - public void clear() - { - setMarkIndex(-1); - setGetIndex(0); - setPutIndex(_buffer.getIndex()); - setGetIndex(_buffer.getIndex()); - } + /** + * + */ + @Override + public void clear() + { + setMarkIndex(-1); + setGetIndex(0); + setPutIndex(_buffer.getIndex()); + setGetIndex(_buffer.getIndex()); + } - /** - * - */ - @Override - public void compact() - { - // TODO - } + /** + * + */ + @Override + public void compact() + { + // TODO + } - /* - * (non-Javadoc) - * - * @see java.lang.Object#equals(java.lang.Object) - */ - @Override - public boolean equals(Object obj) - { - return this==obj ||((obj instanceof Buffer)&& obj.equals(this)) || super.equals(obj); - } + /* + * (non-Javadoc) + * + * @see java.lang.Object#equals(java.lang.Object) + */ + @Override + public boolean equals(Object obj) + { + return this==obj ||((obj instanceof Buffer)&& obj.equals(this)) || super.equals(obj); + } - /** - * @return Whether the underlying buffer is {@link Buffer#isReadOnly read only} - */ - @Override - public boolean isReadOnly() - { - return _buffer.isReadOnly(); - } + /** + * @return Whether the underlying buffer is {@link Buffer#isReadOnly read only} + */ + @Override + public boolean isReadOnly() + { + return _buffer.isReadOnly(); + } - /** - * @return Whether the underlying buffer is {@link Buffer#isVolatile volatile} - */ - @Override - public boolean isVolatile() - { - return true; - } + /** + * @return Whether the underlying buffer is {@link Buffer#isVolatile volatile} + */ + @Override + public boolean isVolatile() + { + return true; + } - /** - * @return The result of calling {@link Buffer#peek(int)} on the underlying buffer - */ - public byte peek(int index) - { - return _buffer.peek(index); - } + /** + * @return The result of calling {@link Buffer#peek(int)} on the underlying buffer + */ + public byte peek(int index) + { + return _buffer.peek(index); + } - /** - * @return The result of calling {@link Buffer#peek(int, byte[], int, int)} on the underlying buffer - */ - public int peek(int index, byte[] b, int offset, int length) - { - return _buffer.peek(index,b,offset,length); - } + /** + * @return The result of calling {@link Buffer#peek(int, byte[], int, int)} on the underlying buffer + */ + public int peek(int index, byte[] b, int offset, int length) + { + return _buffer.peek(index,b,offset,length); + } - /** - * @return The result of calling {@link Buffer#peek(int, int)} on the underlying buffer - */ - @Override - public Buffer peek(int index, int length) - { - return _buffer.peek(index, length); - } - - /** - * @param index - * @param src - */ - @Override - public int poke(int index, Buffer src) - { - return _buffer.poke(index,src); - } + /** + * @return The result of calling {@link Buffer#peek(int, int)} on the underlying buffer + */ + @Override + public Buffer peek(int index, int length) + { + return _buffer.peek(index, length); + } + + /** + * @param index + * @param src + */ + @Override + public int poke(int index, Buffer src) + { + return _buffer.poke(index,src); + } - /** - * @param index - * @param b - */ - public void poke(int index, byte b) - { - _buffer.poke(index,b); - } + /** + * @param index + * @param b + */ + public void poke(int index, byte b) + { + _buffer.poke(index,b); + } - /** - * @param index - * @param b - * @param offset - * @param length - */ - @Override - public int poke(int index, byte[] b, int offset, int length) - { - return _buffer.poke(index,b,offset,length); - } - - @Override - public String toString() - { - if (_buffer==null) - return "INVALID"; - return super.toString(); - } - - public static class CaseInsensitive extends View implements Buffer.CaseInsensitve - { - public CaseInsensitive() - { - super(); - } + /** + * @param index + * @param b + * @param offset + * @param length + */ + @Override + public int poke(int index, byte[] b, int offset, int length) + { + return _buffer.poke(index,b,offset,length); + } + + @Override + public String toString() + { + if (_buffer==null) + return "INVALID"; + return super.toString(); + } + + public static class CaseInsensitive extends View implements Buffer.CaseInsensitve + { + public CaseInsensitive() + { + super(); + } - public CaseInsensitive(Buffer buffer, int mark, int get, int put, int access) - { - super(buffer,mark,get,put,access); - } + public CaseInsensitive(Buffer buffer, int mark, int get, int put, int access) + { + super(buffer,mark,get,put,access); + } - public CaseInsensitive(Buffer buffer) - { - super(buffer); - } - - @Override - public boolean equals(Object obj) - { - return this==obj ||((obj instanceof Buffer)&&((Buffer)obj).equalsIgnoreCase(this)) || super.equals(obj); - } - } + public CaseInsensitive(Buffer buffer) + { + super(buffer); + } + + @Override + public boolean equals(Object obj) + { + return this==obj ||((obj instanceof Buffer)&&((Buffer)obj).equalsIgnoreCase(this)) || super.equals(obj); + } + } }
--- a/src/org/eclipse/jetty/io/nio/ChannelEndPoint.java Sat Oct 22 23:00:57 2016 -0600 +++ b/src/org/eclipse/jetty/io/nio/ChannelEndPoint.java Sun Oct 23 02:42:05 2016 -0600 @@ -158,6 +158,7 @@ @Override public void close() throws IOException { +//Thread.dumpStack(); LOG.debug("close {}",this); _channel.close(); } @@ -168,11 +169,11 @@ if (_ishut) return -1; Buffer buf = buffer.buffer(); - int len=0; + int len = 0; if (buf instanceof NIOBuffer) { final NIOBuffer nbuf = (NIOBuffer)buf; - final ByteBuffer bbuf=nbuf.getByteBuffer(); + final ByteBuffer bbuf = nbuf.getByteBuffer(); //noinspection SynchronizationOnLocalVariableOrMethodParameter try
--- a/src/org/eclipse/jetty/server/AbstractHttpConnection.java Sat Oct 22 23:00:57 2016 -0600 +++ b/src/org/eclipse/jetty/server/AbstractHttpConnection.java Sun Oct 23 02:42:05 2016 -0600 @@ -29,7 +29,7 @@ import javax.servlet.http.HttpServletResponse; import org.eclipse.jetty.http.EncodedHttpURI; -import org.eclipse.jetty.http.HttpBuffers; +import org.eclipse.jetty.http.HttpBuffersImpl; import org.eclipse.jetty.http.HttpException; import org.eclipse.jetty.http.HttpFields; import org.eclipse.jetty.http.HttpGenerator; @@ -122,7 +122,7 @@ { super(endpoint); _connector = connector; - HttpBuffers ab = _connector; + HttpBuffersImpl ab = _connector._buffers; _parser = new HttpParser(ab.getRequestBuffers(), endpoint, new RequestHandler()); _request = new Request(this); _response = new Response(this);
--- a/src/org/eclipse/jetty/server/Connector.java Sat Oct 22 23:00:57 2016 -0600 +++ b/src/org/eclipse/jetty/server/Connector.java Sun Oct 23 02:42:05 2016 -0600 @@ -28,7 +28,6 @@ import javax.servlet.ServletRequest; -import org.eclipse.jetty.http.HttpBuffers; import org.eclipse.jetty.http.HttpBuffersImpl; import org.eclipse.jetty.http.HttpFields; import org.eclipse.jetty.http.HttpHeaders; @@ -53,7 +52,7 @@ * <li>Optional reverse proxy headers checking</li> * </ul> */ -public abstract class Connector extends AggregateLifeCycle implements HttpBuffers, Dumpable, Runnable +public abstract class Connector extends AggregateLifeCycle implements Dumpable, Runnable { private static final Logger LOG = LoggerFactory.getLogger(Connector.class); @@ -184,108 +183,6 @@ protected abstract void accept() throws IOException, InterruptedException; @Override - public final int getRequestBufferSize() - { - return _buffers.getRequestBufferSize(); - } - - @Override - public final void setRequestBufferSize(int requestBufferSize) - { - _buffers.setRequestBufferSize(requestBufferSize); - } - - @Override - public final int getRequestHeaderSize() - { - return _buffers.getRequestHeaderSize(); - } - - @Override - public final void setRequestHeaderSize(int requestHeaderSize) - { - _buffers.setRequestHeaderSize(requestHeaderSize); - } - - @Override - public final int getResponseBufferSize() - { - return _buffers.getResponseBufferSize(); - } - - @Override - public final void setResponseBufferSize(int responseBufferSize) - { - _buffers.setResponseBufferSize(responseBufferSize); - } - - @Override - public final int getResponseHeaderSize() - { - return _buffers.getResponseHeaderSize(); - } - - @Override - public final void setResponseHeaderSize(int responseHeaderSize) - { - _buffers.setResponseHeaderSize(responseHeaderSize); - } - - @Override - public final Type getRequestBufferType() - { - return _buffers.getRequestBufferType(); - } - - @Override - public final Type getRequestHeaderType() - { - return _buffers.getRequestHeaderType(); - } - - @Override - public final Type getResponseBufferType() - { - return _buffers.getResponseBufferType(); - } - - @Override - public final Type getResponseHeaderType() - { - return _buffers.getResponseHeaderType(); - } - - @Override - public final void setRequestBuffers(Buffers requestBuffers) - { - _buffers.setRequestBuffers(requestBuffers); - } - - @Override - public final void setResponseBuffers(Buffers responseBuffers) - { - _buffers.setResponseBuffers(responseBuffers); - } - - @Override - public final Buffers getRequestBuffers() - { - return _buffers.getRequestBuffers(); - } - - @Override - public final Buffers getResponseBuffers() - { - return _buffers.getResponseBuffers(); - } - - @Override - public final int getMaxBuffers() - { - return _buffers.getMaxBuffers(); - } - - @Override public String toString() { return String.format("%s@%s:%d", @@ -347,7 +244,7 @@ public final boolean getUseDirectBuffers() { - return getRequestBufferType()==Type.DIRECT; + return _buffers.getRequestBufferType()==Type.DIRECT; } /* ------------------------------------------------------------------------------- */
--- a/src/org/eclipse/jetty/server/nio/BlockingChannelConnector.java Sat Oct 22 23:00:57 2016 -0600 +++ b/src/org/eclipse/jetty/server/nio/BlockingChannelConnector.java Sun Oct 23 02:42:05 2016 -0600 @@ -211,13 +211,15 @@ } catch (EofException e) { - LOG.debug("EOF", e); - try{BlockingChannelEndPoint.this.close();} + LOG.warn("EOF", e); +// LOG.debug("EOF", e); + try{close();} catch(IOException e2){LOG.trace("",e2);} } catch (HttpException e) { - LOG.debug("BAD", e); + LOG.warn("BAD", e); +// LOG.debug("BAD", e); try{close();} catch(IOException e2){LOG.trace("",e2);} }
--- a/src/org/eclipse/jetty/server/ssl/SslSelectChannelConnector.java Sat Oct 22 23:00:57 2016 -0600 +++ b/src/org/eclipse/jetty/server/ssl/SslSelectChannelConnector.java Sun Oct 23 02:42:05 2016 -0600 @@ -30,7 +30,6 @@ import org.eclipse.jetty.io.AsyncEndPoint; import org.eclipse.jetty.io.Buffers; import org.eclipse.jetty.io.Buffers.Type; -import org.eclipse.jetty.io.BuffersFactory; import org.eclipse.jetty.io.EndPoint; import org.eclipse.jetty.io.RuntimeIOException; import org.eclipse.jetty.io.nio.AsyncConnection; @@ -53,7 +52,6 @@ public final class SslSelectChannelConnector extends SelectChannelConnector { private final SslContextFactory _sslContextFactory; - private Buffers _sslBuffers; /* ------------------------------------------------------------ */ public SslSelectChannelConnector(Server server,int port) @@ -189,29 +187,12 @@ SSLSession sslSession = sslEngine.getSession(); - _sslBuffers = BuffersFactory.newBuffers( - getUseDirectBuffers()?Type.DIRECT:Type.INDIRECT,sslSession.getApplicationBufferSize(), - getUseDirectBuffers()?Type.DIRECT:Type.INDIRECT,sslSession.getApplicationBufferSize(), - getUseDirectBuffers()?Type.DIRECT:Type.INDIRECT,getMaxBuffers() - ); - - if (getRequestHeaderSize()<sslSession.getApplicationBufferSize()) - setRequestHeaderSize(sslSession.getApplicationBufferSize()); - if (getRequestBufferSize()<sslSession.getApplicationBufferSize()) - setRequestBufferSize(sslSession.getApplicationBufferSize()); + if (_buffers.getRequestHeaderSize()<sslSession.getApplicationBufferSize()) + _buffers.setRequestHeaderSize(sslSession.getApplicationBufferSize()); + if (_buffers.getRequestBufferSize()<sslSession.getApplicationBufferSize()) + _buffers.setRequestBufferSize(sslSession.getApplicationBufferSize()); super.doStart(); } - /* ------------------------------------------------------------ */ - /** - * @see org.eclipse.jetty.server.nio.SelectChannelConnector#doStop() - */ - @Override - protected void doStop() throws Exception - { - _sslBuffers = null; - super.doStop(); - } - }