2 ===================================================================
3 --- VERSION.txt (revision 2128)
4 +++ VERSION.txt (working copy)
7 + Improved JSON parsing from Readers
8 + + Delay 100 continues until getInputStream
10 jetty-6.1.6rc0 - 3 October 2007
11 + Added jetty.lib system property to start.config
12 Index: modules/jetty/src/test/java/org/mortbay/jetty/DumpHandler.java
13 ===================================================================
14 --- modules/jetty/src/test/java/org/mortbay/jetty/DumpHandler.java (revision 2127)
15 +++ modules/jetty/src/test/java/org/mortbay/jetty/DumpHandler.java (working copy)
17 import javax.servlet.http.HttpServletResponse;
19 import org.mortbay.jetty.handler.AbstractHandler;
20 +import org.mortbay.log.Log;
21 import org.mortbay.util.StringUtil;
22 import org.mortbay.util.ajax.Continuation;
23 import org.mortbay.util.ajax.ContinuationSupport;
25 writer.write(new String(content,0,len));
30 writer.write(e.toString());
36 response.setContentLength(buf.size()+1000);
41 - for (int pad=998-buf.size();pad-->0;)
43 - writer.write("\015\012");
47 - response.setHeader("IgnoreMe","ignored");
55 + for (int pad=998-buf.size();pad-->0;)
57 + writer.write("\015\012");
61 + response.setHeader("IgnoreMe","ignored");
69 \ No newline at end of file
70 Index: modules/jetty/src/test/java/org/mortbay/jetty/RFC2616Test.java
71 ===================================================================
72 --- modules/jetty/src/test/java/org/mortbay/jetty/RFC2616Test.java (revision 2133)
73 +++ modules/jetty/src/test/java/org/mortbay/jetty/RFC2616Test.java (working copy)
76 offset=checkContains(response,offset,"HTTP/1.1 100 ","8.2.3 expect 100")+1;
77 checkNotContained(response,offset,"HTTP/1.1 200","8.2.3 expect 100");
78 + /* can't test this with localconnector.
79 response=connector.getResponses("654321\015\012");
80 offset=checkContains(response,offset,"HTTP/1.1 200","8.2.3 expect 100")+1;
81 offset=checkContains(response,offset,"654321","8.2.3 expect 100")+1;
86 Index: modules/jetty/src/main/java/org/mortbay/jetty/HttpConnection.java
87 ===================================================================
88 --- modules/jetty/src/main/java/org/mortbay/jetty/HttpConnection.java (revision 2127)
89 +++ modules/jetty/src/main/java/org/mortbay/jetty/HttpConnection.java (working copy)
92 * @return The input stream for this connection. The stream will be created if it does not already exist.
94 - public ServletInputStream getInputStream()
95 + public ServletInputStream getInputStream() throws IOException
97 + if (_expect == HttpHeaderValues.CONTINUE_ORDINAL)
99 + // TODO delay sending 100 response until a read is attempted.
100 + if (((HttpParser)_parser).getHeaderBuffer()==null || ((HttpParser)_parser).getHeaderBuffer().length()<2)
102 + _generator.setResponse(HttpStatus.ORDINAL_100_Continue, null);
103 + _generator.completeHeader(null, true);
104 + _generator.complete();
105 + _generator.reset(false);
111 _in = new HttpParser.Input(((HttpParser)_parser),_connector.getMaxIdleTime());
117 + if (_expect == HttpHeaderValues.CONTINUE_ORDINAL)
119 + // Continue not sent so don't parse any content
121 + if (_parser instanceof HttpParser)
122 + ((HttpParser)_parser).setState(HttpParser.STATE_END);
125 if (_request.getContinuation()!=null)
127 Log.debug("continuation still pending {}");
132 - _response.complete(); // TODO ????????????
133 + _response.complete();
139 if (_expect == HttpHeaderValues.CONTINUE_ORDINAL)
141 - // TODO delay sending 100 response until a read is attempted.
142 - if (((HttpParser)_parser).getHeaderBuffer()==null || ((HttpParser)_parser).getHeaderBuffer().length()<2)
144 - _generator.setResponse(HttpStatus.ORDINAL_100_Continue, null);
145 - _generator.completeHeader(null, true);
146 - _generator.complete();
147 - _generator.reset(false);
150 else if (_expect == HttpHeaderValues.PROCESSING_ORDINAL)
153 _request.setCharacterEncodingUnchecked(_charset);
155 // Either handle now or wait for first content
156 - if (((HttpParser)_parser).getContentLength()<=0 && !((HttpParser)_parser).isChunking())
157 + if ((((HttpParser)_parser).getContentLength()<=0 && !((HttpParser)_parser).isChunking())||_expect==HttpHeaderValues.CONTINUE_ORDINAL)
160 _delayedHandling=true;
161 Index: modules/jetty/src/main/java/org/mortbay/jetty/AbstractGenerator.java
162 ===================================================================
163 --- modules/jetty/src/main/java/org/mortbay/jetty/AbstractGenerator.java (revision 2127)
164 +++ modules/jetty/src/main/java/org/mortbay/jetty/AbstractGenerator.java (working copy)
167 public void setVersion(int version)
169 - if (_state != STATE_HEADER) throw new IllegalStateException("STATE!=START");
170 + if (_state != STATE_HEADER)
171 + throw new IllegalStateException("STATE!=START "+_state);
173 if (_version==HttpVersions.HTTP_0_9_ORDINAL && _method!=null)