Mercurial Hosting > luan
changeset 1035:898774c2cd87
remove HttpGenerator.returnBuffers()
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Thu, 03 Nov 2016 21:09:57 -0600 |
parents | 563458c4dc93 |
children | b87f97f6418a |
files | src/org/eclipse/jetty/http/AbstractGenerator.java src/org/eclipse/jetty/server/AbstractHttpConnection.java src/org/eclipse/jetty/server/AsyncHttpConnection.java src/org/eclipse/jetty/server/BlockingHttpConnection.java |
diffstat | 4 files changed, 45 insertions(+), 69 deletions(-) [+] |
line wrap: on
line diff
--- a/src/org/eclipse/jetty/http/AbstractGenerator.java Thu Nov 03 21:02:59 2016 -0600 +++ b/src/org/eclipse/jetty/http/AbstractGenerator.java Thu Nov 03 21:09:57 2016 -0600 @@ -108,19 +108,6 @@ return _endp.isOpen(); } - public final void returnBuffers() - { - if (_buffer!=null && _buffer.length()==0) - { - _buffer=null; - } - - if (_header!=null && _header.length()==0) - { - _header=null; - } - } - public final void resetBuffer() { if(_state>=STATE_FLUSHING)
--- a/src/org/eclipse/jetty/server/AbstractHttpConnection.java Thu Nov 03 21:02:59 2016 -0600 +++ b/src/org/eclipse/jetty/server/AbstractHttpConnection.java Thu Nov 03 21:09:57 2016 -0600 @@ -237,7 +237,6 @@ protected void reset() { _requestFields.clear(); - _generator.returnBuffers();// TODO maybe only on unhandle _responseFields.clear(); _uri.clear(); _writer = null;
--- a/src/org/eclipse/jetty/server/AsyncHttpConnection.java Thu Nov 03 21:02:59 2016 -0600 +++ b/src/org/eclipse/jetty/server/AsyncHttpConnection.java Thu Nov 03 21:09:57 2016 -0600 @@ -129,9 +129,6 @@ } finally { - // return buffers - _generator.returnBuffers(); - // Safety net to catch spinning if (some_progress) _total_no_progress = 0;
--- a/src/org/eclipse/jetty/server/BlockingHttpConnection.java Thu Nov 03 21:02:59 2016 -0600 +++ b/src/org/eclipse/jetty/server/BlockingHttpConnection.java Thu Nov 03 21:09:57 2016 -0600 @@ -44,68 +44,61 @@ @Override public void handle() throws IOException { - try + // do while the endpoint is open + // AND the connection has not changed + while (_endp.isOpen()) { - // do while the endpoint is open - // AND the connection has not changed - while (_endp.isOpen()) + try { - try - { - // If we are not ended then parse available - if (!_parser.isComplete() && !_endp.isInputShutdown()) - _parser.parseAvailable(); + // If we are not ended then parse available + if (!_parser.isComplete() && !_endp.isInputShutdown()) + _parser.parseAvailable(); + + // Do we have more generating to do? + // Loop here because some writes may take multiple steps and + // we need to flush them all before potentially blocking in the + // next loop. + if (_generator.isCommitted() && !_generator.isComplete() && !_endp.isOutputShutdown()) + _generator.flushBuffer(); - // Do we have more generating to do? - // Loop here because some writes may take multiple steps and - // we need to flush them all before potentially blocking in the - // next loop. - if (_generator.isCommitted() && !_generator.isComplete() && !_endp.isOutputShutdown()) - _generator.flushBuffer(); + // Flush buffers + _endp.flush(); + } + catch (HttpException e) + { + if (LOG.isDebugEnabled()) + { + LOG.debug("uri="+_uri); + LOG.debug("fields="+_requestFields); + LOG.debug("",e); + } + _generator.sendError(e.getStatus(), e.getReason(), null, true); + initParser(); + _endp.shutdownOutput(); + } + finally + { + // Is this request/response round complete and are fully flushed? + if (_parser.isComplete() && _generator.isComplete()) + { + // Reset the parser/generator + reset(); - // Flush buffers - _endp.flush(); - } - catch (HttpException e) - { - if (LOG.isDebugEnabled()) + // TODO Is this required? + if (!_generator.isPersistent() && !_endp.isOutputShutdown()) { - LOG.debug("uri="+_uri); - LOG.debug("fields="+_requestFields); - LOG.debug("",e); + LOG.warn("Safety net oshut!!! Please open a bugzilla"); + _endp.shutdownOutput(); } - _generator.sendError(e.getStatus(), e.getReason(), null, true); - initParser(); - _endp.shutdownOutput(); } - finally + + // If we don't have a committed response and we are not suspended + if (_endp.isInputShutdown() && _generator.isIdle()) { - // Is this request/response round complete and are fully flushed? - if (_parser.isComplete() && _generator.isComplete()) - { - // Reset the parser/generator - reset(); - - // TODO Is this required? - if (!_generator.isPersistent() && !_endp.isOutputShutdown()) - { - LOG.warn("Safety net oshut!!! Please open a bugzilla"); - _endp.shutdownOutput(); - } - } - - // If we don't have a committed response and we are not suspended - if (_endp.isInputShutdown() && _generator.isIdle()) - { - // then no more can happen, so close. - _endp.close(); - } + // then no more can happen, so close. + _endp.close(); } } } - finally - { - _generator.returnBuffers(); - } } }