diff options
author | Greg Wilkins | 2009-09-22 01:41:17 +0000 |
---|---|---|
committer | Greg Wilkins | 2009-09-22 01:41:17 +0000 |
commit | bfd43fb5c421de114f1a0021575ccccb32dad58d (patch) | |
tree | 1599f105432d97c9ca3f61bbb91228535a5d3f6e | |
parent | d66c553bdeca77935c46183dcf9f8e53a01b83e8 (diff) | |
download | org.eclipse.jetty.project-bfd43fb5c421de114f1a0021575ccccb32dad58d.tar.gz org.eclipse.jetty.project-bfd43fb5c421de114f1a0021575ccccb32dad58d.tar.xz org.eclipse.jetty.project-bfd43fb5c421de114f1a0021575ccccb32dad58d.zip |
290081 Eager consume LF after CR
git-svn-id: svn+ssh://dev.eclipse.org/svnroot/rt/org.eclipse.jetty/jetty/branches/jetty-7.0.0.x@946 7e9141cc-0065-0410-87d8-b60c137991c4
4 files changed, 21 insertions, 9 deletions
diff --git a/VERSION.txt b/VERSION.txt index 1cd037c270..dcaa22c35f 100644 --- a/VERSION.txt +++ b/VERSION.txt @@ -1,6 +1,6 @@ jetty-7.0.0.RC7-SNAPSHOT + 289958 StatisticsServlet incorrectly adds StatisticsHandler - + Remove printlns from jetty-plus + + 290081 Eager consume LF after CR jetty-7.0.0.RC6 September 18th 2009 + JETTY-719 Document state machine of jetty http client @@ -31,9 +31,10 @@ jetty-7.0.0.RC6 September 18th 2009 + 288182 PUT request fails during retry + 289221 HttpExchange does not timeout when using blocking connector + 289285 org.eclipse.jetty.continuation 7.0.0.RC5 imports the org.mortbay.util.ajax package + + 289686 HttpExchange.setStatus() has too coarse synchronization + Tweak DefaultServletTest under windows + Copy VERSION.txt to distro - + 289686 HttpExchange.setStatus() has too coarse synchronization + + Remove printlns from jetty-plus jetty-6.1.20 27 August 2009 + JETTY-838 Don't log and throw diff --git a/jetty-deploy/src/main/java/org/eclipse/jetty/deploy/ContextDeployer.java b/jetty-deploy/src/main/java/org/eclipse/jetty/deploy/ContextDeployer.java index 3f767a5123..6ec10bcd31 100644 --- a/jetty-deploy/src/main/java/org/eclipse/jetty/deploy/ContextDeployer.java +++ b/jetty-deploy/src/main/java/org/eclipse/jetty/deploy/ContextDeployer.java @@ -119,7 +119,7 @@ public class ContextDeployer extends AbstractLifeCycle * * @throws Exception */ - public ContextDeployer() throws Exception + public ContextDeployer() { _scanner=new Scanner(); } diff --git a/jetty-http/src/main/java/org/eclipse/jetty/http/HttpParser.java b/jetty-http/src/main/java/org/eclipse/jetty/http/HttpParser.java index 5d85c4c250..938b930fc6 100644 --- a/jetty-http/src/main/java/org/eclipse/jetty/http/HttpParser.java +++ b/jetty-http/src/main/java/org/eclipse/jetty/http/HttpParser.java @@ -506,6 +506,9 @@ public class HttpParser implements Parser _contentPosition=0; _eol=ch; + if (_eol==HttpTokens.CARRIAGE_RETURN && _buffer.hasContent() && _buffer.peek()==HttpTokens.LINE_FEED) + _eol=_buffer.get(); + // We convert _contentLength to an int for this switch statement because // we don't care about the amount of data available just whether there is some. switch (_contentLength > Integer.MAX_VALUE ? Integer.MAX_VALUE : (int) _contentLength) @@ -766,8 +769,11 @@ public class HttpParser implements Parser if (ch == HttpTokens.CARRIAGE_RETURN || ch == HttpTokens.LINE_FEED) { _eol=ch; + if (_chunkLength == 0) { + if (_eol==HttpTokens.CARRIAGE_RETURN && _buffer.hasContent() && _buffer.peek()==HttpTokens.LINE_FEED) + _eol=_buffer.get(); _state=STATE_END; _handler.messageComplete(_contentPosition); return total_filled; @@ -796,6 +802,8 @@ public class HttpParser implements Parser _eol=ch; if (_chunkLength == 0) { + if (_eol==HttpTokens.CARRIAGE_RETURN && _buffer.hasContent() && _buffer.peek()==HttpTokens.LINE_FEED) + _eol=_buffer.get(); _state=STATE_END; _handler.messageComplete(_contentPosition); return total_filled; @@ -919,11 +927,8 @@ public class HttpParser implements Parser _length=0; _responseStatus=0; - if (_buffer!=null && _buffer.length()>0 && _eol == HttpTokens.CARRIAGE_RETURN && _buffer.peek() == HttpTokens.LINE_FEED) - { - _buffer.skip(1); - _eol=HttpTokens.LINE_FEED; - } + if (_eol == HttpTokens.CARRIAGE_RETURN && _buffer!=null && _buffer.hasContent() && _buffer.peek() == HttpTokens.LINE_FEED) + _eol=_buffer.get(); if (_body!=null) { diff --git a/jetty-server/src/main/java/org/eclipse/jetty/server/HttpConnection.java b/jetty-server/src/main/java/org/eclipse/jetty/server/HttpConnection.java index feec8b34eb..e296d72bd1 100644 --- a/jetty-server/src/main/java/org/eclipse/jetty/server/HttpConnection.java +++ b/jetty-server/src/main/java/org/eclipse/jetty/server/HttpConnection.java @@ -451,7 +451,13 @@ public class HttpConnection implements Connection more_in_buffer=false; } - reset(!more_in_buffer); + if (more_in_buffer) + { + reset(false); + more_in_buffer = _parser.isMoreInBuffer() || _endp.isBufferingInput(); + } + else + reset(true); progress=true; } |