Merge remote-tracking branch 'origin/jetty-7' into jetty-8

Conflicts:
	VERSION.txt
This commit is contained in:
Greg Wilkins 2012-11-08 14:41:01 +11:00
commit b3274a6baa
4 changed files with 74 additions and 34 deletions

View File

@ -46,6 +46,35 @@ jetty-8.1.8.v20121106 - 06 November 2012
+ JETTY-1547 Jetty does not honor web.xml
web-app/jsp-config/jsp-property-group/default-content-type
jetty-7.6.8.v20121106 - 06 November 2012
+ 371170 MongoSessionManager LastAccessTimeTest fails
+ 388675 Non utf8 encoded query strings not decoded to parameter map using
queryEncoding
+ 389686 Fix reference to org.eclipse.jetty.util.log.stderr.LONG system
property in javadoc for StdErrLog
+ 389956 Bad __context set in WebAppContext.start sequence with respect to ENC
setup
+ 389965 OPTIONS should allow spaces in comma separated list
+ 390161 Apply DeferredAuthentication fix to jaspi
+ 390560 The method AnnotationParser.getAnnotationHandlers(String) always
returns a empty collection.
+ 391483 fix bad javadoc example in shutdown handler
+ 391622 Be lenient on RFC6265 restriction on duplicate cookie names in same
response
+ 391623 Add option to --stop to wait for target jetty to stop
+ 392239 Allow no error-code or exception for error-pages
+ 392525 Add option to --stop-wait to specify timeout
+ 392641 JDBC Sessions not scavenged if expired during downtime
+ 392812 MongoSessionIDManager never purges old sessions
+ 393014 Mongodb purgevalid using query for purgeinvalid
+ 393015 Mongodb purge not rescheduled
+ 393075 Jetty WebSocket client cannot connect to Tomcat WebSocket Server
+ 393218 add xsd=application/xml mime mapping to defaults
+ 393363 Use Locale.ENGLISH for all toUpperCase and toLowerCase calls
+ 393368 min websocket version
+ 393383 delay onClose call until closeOut is done
+ 393494 HashSessionManager can't delete unrestorable sessions on Windows
jetty-8.1.7.v20120910 - 10 September 2012
+ 388895 Update dependencies for jetty-jndi
+ fix busy logging statement re: sessions

View File

@ -525,7 +525,7 @@ public class HttpParser implements Parser
switch (ho)
{
case HttpHeaders.CONTENT_LENGTH_ORDINAL:
if (_contentLength != HttpTokens.CHUNKED_CONTENT && _responseStatus!=304 && _responseStatus!=204 && (_responseStatus<100 || _responseStatus>=200))
if (_contentLength != HttpTokens.CHUNKED_CONTENT )
{
try
{
@ -596,12 +596,17 @@ public class HttpParser implements Parser
}
_buffer.setMarkIndex(-1);
// now handle ch
if (ch == HttpTokens.CARRIAGE_RETURN || ch == HttpTokens.LINE_FEED)
{
// work out the _content demarcation
if (_contentLength == HttpTokens.UNKNOWN_CONTENT)
// is it a response that cannot have a body?
if (_responseStatus > 0 && // response
(_responseStatus == 304 || // not-modified response
_responseStatus == 204 || // no-content response
_responseStatus < 200)) // 1xx response
_contentLength=HttpTokens.NO_CONTENT; // ignore any other headers set
// else if we don't know framing
else if (_contentLength == HttpTokens.UNKNOWN_CONTENT)
{
if (_responseStatus == 0 // request
|| _responseStatus == 304 // not-modified response

View File

@ -807,39 +807,42 @@ public abstract class AbstractHttpConnection extends AbstractConnection
break;
case HttpHeaders.EXPECT_ORDINAL:
value = HttpHeaderValues.CACHE.lookup(value);
switch(HttpHeaderValues.CACHE.getOrdinal(value))
if (_version>=HttpVersions.HTTP_1_1_ORDINAL)
{
case HttpHeaderValues.CONTINUE_ORDINAL:
_expect100Continue=_generator instanceof HttpGenerator;
break;
value = HttpHeaderValues.CACHE.lookup(value);
switch(HttpHeaderValues.CACHE.getOrdinal(value))
{
case HttpHeaderValues.CONTINUE_ORDINAL:
_expect100Continue=_generator instanceof HttpGenerator;
break;
case HttpHeaderValues.PROCESSING_ORDINAL:
_expect102Processing=_generator instanceof HttpGenerator;
break;
case HttpHeaderValues.PROCESSING_ORDINAL:
_expect102Processing=_generator instanceof HttpGenerator;
break;
default:
String[] values = value.toString().split(",");
for (int i=0;values!=null && i<values.length;i++)
{
CachedBuffer cb=HttpHeaderValues.CACHE.get(values[i].trim());
if (cb==null)
_expect=true;
else
default:
String[] values = value.toString().split(",");
for (int i=0;values!=null && i<values.length;i++)
{
switch(cb.getOrdinal())
CachedBuffer cb=HttpHeaderValues.CACHE.get(values[i].trim());
if (cb==null)
_expect=true;
else
{
case HttpHeaderValues.CONTINUE_ORDINAL:
_expect100Continue=_generator instanceof HttpGenerator;
break;
case HttpHeaderValues.PROCESSING_ORDINAL:
_expect102Processing=_generator instanceof HttpGenerator;
break;
default:
_expect=true;
switch(cb.getOrdinal())
{
case HttpHeaderValues.CONTINUE_ORDINAL:
_expect100Continue=_generator instanceof HttpGenerator;
break;
case HttpHeaderValues.PROCESSING_ORDINAL:
_expect102Processing=_generator instanceof HttpGenerator;
break;
default:
_expect=true;
}
}
}
}
}
}
break;

View File

@ -44,14 +44,15 @@ public class TomcatServerQuirksTest
* @throws IOException
*/
@Test
@Ignore("Bug with Transfer-Encoding")
public void testTomcat7_0_32_WithTransferEncoding() throws Exception {
public void testTomcat7_0_32_WithTransferEncoding() throws Exception
{
DummyServer server = new DummyServer();
int bufferSize = 512;
QueuedThreadPool threadPool = new QueuedThreadPool();
WebSocketClientFactory factory = new WebSocketClientFactory(threadPool, new ZeroMaskGen(), bufferSize);
try {
try
{
server.start();
// Setup Client Factory
@ -113,7 +114,9 @@ public class TomcatServerQuirksTest
socket.flush();
Assert.assertTrue(dataLatch.await(1000, TimeUnit.SECONDS));
} finally {
}
finally
{
factory.stop();
threadPool.stop();
server.stop();