jetty-9.3.7-SNAPSHOT

jetty-9.3.7.RC1 - 13 January 2016
 + 481986 Dead JSR 356 Server Session still being tracked after
   Session/Connection closure
 + 484616 Outdated version of javaee_web_services_client_1_2.xsd
 + 485031 two PathWatcher threads running after automatically restarting webapp
 + 485063 After stopping JettyWebAppContext, it still contains reference to old
   WebAppClassLoader via ServerContainer bean
 + 485064 HashSessionManager leaks ScheduledExecutorScheduler with reference to
   un-deployed webapp
 + 485376 Multiple charset attributes in Content-Type
 + 485535 jetty.sh results in FAILED when running service restart
 + 485663 NullPointerException in WebSocketSession during upgrade with DEBUG
   logging
 + 485712 Quickstart web.xml is absolute

jetty-9.3.7.RC0 - 05 January 2016
 + 458745 Async ISE in async Echo
 + 481567 permessage-deflate causing data-dependent ju.zip.DataFormatException:
   invalid stored block lengths
 + 482173 Track original Query string in Rewrite RuleContainer too
 + 482243 Fixed GzipHandler for Include.
 + 482270 Expose upgrade request locales.
 + 482272 Fixed relative symlink checking
 + 482506 HTTP/2 load test with h2load fails.
 + 482670 HttpURI wrongly parser URI paths starting with /@
 + 482855 Content-Length omitted for POST requests with empty body
 + 482959 Local stream count never decrements when closing a stream causing
   IllegalStateException.
 + 483009 MultiPartContentProvider may send wrong Content-Length.
 + 483039 HTTP2 Upgrade case sensitivity on Connection header
 + 483344 text/csv Mime Type For CSV in mime properties File
 + 483413 Warn on @Deprecated servlet/filter use
 + 483422 Empty chunked body in 304 Response
 + 483620 Servlet annotation mapping to "/" should override webdefault.xml
   mapping
 + 483857 jetty-client onComplete isn't called in case of exception in
   GZIPContentDecoder.
 + 483878 Parallel requests stuck via the http client transport over HTTP/2.
 + 484167 GOAWAY frames aren't handling disconnects appropriately on Client.
 + 484210 HttpClient over HTTP/2 should honor maxConcurrentStreams.
 + 484262 Race condition between GOAWAY disconnect and ability to make new
   request.
 + 484349 Promote WebSocket PathMappings / PathSpec to Jetty Http
 + 484350 Allow GzipHandler path include/exclude to use regex
 + 484397 Unavoidable NullPointerException in onMessage-Handler for
   PongMessages
 + 484440 Swap WebSocket PathMappings for new jetty-http PathMappings
 + 484585 Avoid sending request using a connection that is idle timing out.
 + 484603 HashLoginService does not stop its PropertyUserStore
 + 484612 Restore WebSocket Session.close() sending 1000/Normal status code
 + 484621 Client hangs till timeout when Authentication.authenticate() throws
   exception.
 + 484622 Improve handling of Direct and Mapped buffers for static content
 + 484624 Disable CachingWebAppClassLoader
 + 484657 Support HSTS rfc6797
 + 484683 FastCGI request idle timeout is handled incorrectly.
 + 484718 Review idle timeout handling.
 + 484801 Avoid non-cached memory mapped files
 + 484818 Expose interesting HTTP/2 attributes and operations via JMX.
 + 484822 Jetty ThreadMonitor memory leak
 + 484861 Improve FlowControlStrategy stall handling.
 + 484876 Make simpler to customize the FlowControlStrategy.
 + 484878 Make BufferingFlowControlStrategy.bufferRatio configurable via JMX.

jetty-9.3.6.v20151106 - 06 November 2015
 + 419966 Add ContentProvider that submits multipart/form-data.
 + 472675 No main manifest attribute, in jetty-runner regression
 + 476641 Proxy rewriteTarget() null return does not call error handler.
 + 478757 DebugHandler thread name is mangled
 + 479179 Fixed NPE from debug
 + 479378 Incorrect REQUEST_URI.
 + 479712 Documented --approve-all-licenses
 + 479832 Use system properties for gcloud config for GCloudDatastore session
   manager
 + 479839 Regression when starting application with excessive scan times
 + 479865 IllegalStateException: Multiple servlets map to path: *.jsp: jsp,jsp
 + 480061 HTTP/2 server doesn't send GOAWAY frame when shutting down.
 + 480162 Continuations behavior differences due to HttpURI behavior
 + 480260 HPack decode error for buffers with offset.
 + 480272 Update to newer jdt ecj version
 + 480452 Large downloads via FastCGI proxy keep HttpClient connections active.
 + 480764 Error parsing empty multipart.
 + 481006 SSL requests intermittently fail with EOFException when SSL
   renegotiation is disallowed.
 + 481203 Add ability to set configurations to apply to WebAppContext for
   jetty-maven-plugin
 + 481225 Secondary resources with query parameters are not properly pushed.
 + 481236 Make ShutdownMonitor java security manager friendly
 + 481355 Nested Symlinks
 + 481373 Corner cases where session may remain in JDBCSessionManager memory
 + 481385 Incorrect parsing of END_REQUEST frames.
 + 481418 ResourceHandler sets last modified
 + 481437 Port ConnectHandler connect and context functionality from Jetty 8.
 + 481554 DispatcherType reset race

jetty-9.2.14.v20151106 - 06 November 2015
 + 428474 Expose batch mode in the Jetty WebSocket API
 + 471055 Restore legacy/experimental WebSocket extensions (deflate-frame)
 + 472082 isOpen returns true on CLOSING Connection
 + 474068 Update WebSocket Extension for permessage-deflate draft-22
 + 474319 Reintroduce blocking connect().
 + 474321 Allow synchronous address resolution.
 + 474453 Tiny buffers (under 7 bytes) fail to compress in permessage-deflate
 + 474454 Backport permessage-deflate from Jetty 9.3.x to 9.2.x
 + 474936 WebSocketSessions are not always cleaned out from openSessions
 + 476023 Incorrect trimming of WebSocket close reason
 + 476049 When using WebSocket Session.close() there should be no status code
   or reason sent
 + 477385 Problem in MANIFEST.MF with version 9.2.10 / 9.2.13.
 + 477817 Fixed memory leak in QueuedThreadPool
 + 481006 SSL requests intermittently fail with EOFException when SSL
   renegotiation is disallowed.
 + 481236 Make ShutdownMonitor java security manager friendly
 + 481437 Port ConnectHandler connect and context functionality from Jetty 8.

jetty-9.3.5.v20151012 - 12 October 2015
 + 479343 calls to MetaData#orderFragments() with relative ordering adds
   duplicate jars
 + 479537 Server preface sent after client preface reply.
 + 479584 WS Session does not contain UpgradeRequest information in
   WebSocketAdapter.onWebSocketConnect callback

jetty-9.3.4.v20151007 - 07 October 2015
 + 428474 Expose batch mode in the Jetty WebSocket API
 + 472082 isOpen returns true on CLOSING Connection
 + 474936 WebSocketSessions are not always cleaned out from openSessions
 + 475209 WebSocketServerFactory should not hand null object to
   DecoratedObjectFactory
 + 476023 Incorrect trimming of WebSocket close reason
 + 476049 When using WebSocket Session.close() there should be no status code
   or reason sent
 + 476170 Support servers that close connections without sending Connection:
   close header.
 + 476720 getTrustStoreResource fixed
 + 477087 Enforce that the preface contains a SETTINGS frame.
 + 477123 AsyncListener callbacks need context scope
 + 477270 Add ability to send a single PRIORITY frame.
 + 477278 Refactored DefaultServlet for cached Gzip & Etags
 + 477385 Make jetty osgi manifests only resolve jetty packages against a
   single distro version
 + 477641 ALPN classes exposed to webapps - fixed typo
 + 477680 Encode merged query parameters
 + 477737 Improve handling of etags with dynamic and static gzip
 + 477757 Null args in TypeUtil .call & .construct result in confusing
   exceptions
 + 477817 Fixed memory leak in QueuedThreadPool
 + 477878 HttpClient over HTTP/2 doesn't close upload stream.
 + 477885 Jetty HTTP2 client fails to connect with Netty server - HTTP2 client
   preface missing or corrupt.
 + 477890 Overwhelmed HTTP/2 server discards data.
 + 477895 Prevent leak of handles to deleted files after redeploy
 + 477900 Increase client authentication default max content size
 + 478008 Do not reset current value of CounterStatistics
 + 478021 Client sending Connection: close does not shutdown output.
 + 478105 prependFilterMapping check for null FilterHolder
 + 478239 Remove pointless synchronize in infinispan scavenging
 + 478247 WebappClassLoader pinned after redeploy
 + 478275 Priority information in HEADERS frame is not sent.
 + 478280 property file in temp directory
 + 478372 JavaUtilLog setSourceClass and setSourceMethod
 + 478434 Priority weights should be between 1 and 256 inclusive.
 + 478752 Clarify support for HttpServletRequest.upgrade()
 + 478757 DebugHandler thread name is mangled
 + 478829 WebsocketSession not cleaned up / memory leak
 + 478862 Update to jstl 1.2.5
 + 478923 threads stuck at SharedBlockingCallback$Blocker.block
 + 479026 Wrong CONNECT request idle timeout.
 + 479277 HttpClient with HTTP/2 transport does not work for "https" URLs.

jetty-9.3.3.v20150827 - 27 August 2015
 + 470311 Introduce a proxy-protocol module.
 + 471055 Restore legacy/experimental WebSocket extensions (deflate-frame)
 + 472411 PathResource.checkAliasPath() typo
 + 473321 Overriding SSL context KeyStoreType requires explicit override of
   TrustStoreType
 + 474025 SslContextFactory does not work with JCEKS Keystore
 + 474068 Update WebSocket Extension for permessage-deflate draft-22
 + 474319 Reintroduce blocking connect().
 + 474321 Allow synchronous address resolution.
 + 474344 apache-jstl includes test dependencies
 + 474358 DefaultServlet bad Content-Type on compressed content
 + 474361 Handle JVM version extensions like -internal
 + 474453 Tiny buffers (under 7 bytes) fail to compress in permessage-deflate
 + 474454 Backport permessage-deflate from Jetty 9.3.x to 9.2.x
 + 474455 Enable permessage-deflate WebSocket extension
 + 474558 Debug log ServletContainerInitializer @HandlesTypes contents
 + 474617 AsyncListener.onError not called for errors
 + 474618 AsyncListener.onComplete not called when error occurs
 + 474634 AsyncListener.onError() handling.
 + 474685 GzipHandler configuration supports csv paths and mimetypes.
 + 474888 HttpClient JMX support.
 + 474936 WebSocketSessions are not always cleaned out from openSessions
 + 474961 Close input stream for classes in AnnotationParser after scanning
 + 475195 SNI matching fails when keystore does not contain wild certificates.
 + 475483 Starting Jetty with [exec] should use properties file.
 + 475546 ClosedChannelException when connecting to HTTPS over HTTP proxy with
   CONNECT.
 + 475605 Add support for multi-homed destinations.
 + 475927 SecureRequestCustomizer fails to match host.

jetty-9.3.2.v20150730 - 30 July 2015
 + 470351 Fixed SNI matching of wildcard certificates
 + 470727 Thread Starvation of selector wakeups.
 + 472601 org.eclipse.jetty.util.log.Log.setLog() does not work as before
 + 472621 Unjustified timeout when serving static content
 + 472781 GzipHandler isMimeTypeGzipable() bad logic
 + 472859 ConcatServlet may expose protected resources.
 + 472931 HttpConfiguration copy constructor incomplete
 + 472974 Improved StatisticsHandler 503 generation
 + 473006 Encode addPath in URLResource
 + 473118 HTTP/2 server does not retrieve Host header from client.
 + 473243 Delay resource close for async default content
 + 473266 Better handling of MultiException
 + 473294 Fixed include cipher suites support for wildcards
 + 473307 Add 301 Moved Permanently Rules to jetty-rewrite
 + 473309 Add special (non-replacement) Terminating rules to jetty-rewrite
 + 473319 Parameterize status code on Redirect Rules for alternate use
 + 473321 Overriding SSL context KeyStoreType requires explicit override of
   TrustStoreType
 + 473322 GatherWrite limit handling
 + 473624 ProxyServlet.Transparent / TransparentDelegate add trailing slash
   before query when using prefix.
 + 473832 SslConnection flips back buffers on handshake exception

jetty-9.2.13.v20150730 - 30 July 2015
 + 472859 ConcatServlet may expose protected resources.
 + 473006 Encode addPath in URLResource
 + 473243 Delay resource close for async default content
 + 473266 Better handling of MultiException
 + 473322 GatherWrite limit handling
 + 473624 ProxyServlet.Transparent / TransparentDelegate add trailing slash
   before query when using prefix.
 + 473832 SslConnection flips back buffers on handshake exception

jetty-9.3.1.v20150714 - 14 July 2015
 + 441020 Support HEADERS followed by CONTINUATION+.
 + 460671 Rationalize property names (fix for jetty.sh)
 + 462346 Change classesPattern to scanClassesPattern and testClassesPattern to
   scanTestClassesPattern to clarify purpose
 + 464294 AsyncNCSARequestLog blocks JVM exit after failure
 + 464741 HttpFields declares IllegalArgumentException as checked exception
 + 464745 Remove @org.apache.xbean.XBean references
 + 469384 Improved javadoc for ClasspathPattern
 + 470184 Send the proxy-to-server request more lazily.
 + 470327 Problem with scope provided dependencies with jspc plugin
 + 470505 jetty-maven-plugin JettyWebAppContext#setQuickStartWebDescriptor
   should accept a Maven-friendly type
 + 470664 Handle multiple RequestLogHandler in chain
 + 470727 Thread Starvation of selector wakeups.
 + 470803 If a webapp is not fully started do not fully stop it
 + 470855 Only log warning for duplicate path mappings to same servlet in same
   descriptor
 + 470963 Update jetty-maven-plugin mojo annotations for maven 3
 + 471071 jetty-infinispan.xml incorrect syntax for remote named cache
 + 471076 Apache jspc ignores empty list of files to precompile and scans
   anyway
 + 471251 Improved debugging on async timeout
 + 471272 ArrayIndexOutOfBoundsException in
   org.eclipse.jetty.quickstart.PreconfigureQuickStartWar
 + 471388 StringIndexOutOfBoundsException when using <c:url> with parameters
 + 471464 Parsing issues with HttpURI
 + 471604 Extend CrossOriginFilter to provide a Timing-Allow-Origin header
 + 471623 Update to apache jsp 8.0.23 Use 8.0.23.M1 for jetty version of apache
   jsp 8.0.23
 + 471985 NPE in HttpFields.putField
 + 472310 Improved logging when no supported included ciphers
 + 472411 PathResource.checkAliasPath typo
 + 472422 Custom status codes result in a NumberFormatException while using
   http2.

jetty-9.3.0.v20150612 - 12 June 2015
 + 414479 Add WebSocketPingPongListener for those that want PING/PONG payload
   data
 + 420678 Add WebSocketPartialListener to support receiving partial WebSocket
   TEXT/BINARY messages
 + 420944 Hot Deployment of WAR when Context XML exists doesn't trigger
   redeploy
 + 423974 Optimize flow control.
 + 424368 Add CONTRIBUTING.md
 + 430951 Support SNI with ExtendedSslContextFactory
 + 436345 Refactor AbstractSession to minimize burden on subclasses to
   implement behaviour
 + 437303 Serving of static filenames with "unwise" characters causes 404 error
 + 437395 Start / Properties in template sections should be default applied for
   enabled modules
 + 438204 getServerName returns IPv6 addresses wrapped in []
 + 439369 Remove unused class CrossContextPsuedoSession
 + 439374 Use utf-8 as default charset for html
 + 439375 preferred rfc7231 format is mime;charset=lowercase-9
 + 440106 Improve ProtocolHandler APIs.
 + 440506 Jetty OSGi boot bundle does not support OSGi framework Eclipse
   Concierge
 + 442083 Client resets stream, pending server data is failed, connection
   closed.
 + 442086 Review HttpOutput blocking writes.
 + 442477 Allow Symlink aliases by default
 + 442495 Bad Context ClassLoader in JSR356 WebSocket onOpen
 + 442950 Embedded Jetty client requests to localhost hangs with high cpu usage
   (NIO OP_CONNECT Solaris/Sparc).
 + 443652 Remove dependency on java.lang.management classes
 + 443661 Rename manifest and service constants for jetty osgi resource
   fragment code
 + 443662 Consume buffer in write(ByteBuffer)
 + 443713 Reduce number of SelectionKey.setInterestOps() calls.
 + 443893 Make a module for weld
 + 444124 JSP include with <servlet><jsp-file> can cause infinite recursion
 + 444214 Socks4Proxy fails when reading less than 8 bytes.
 + 444222 replace CRLF in header values with whitespace rather than ?
 + 444416 AsyncProxyServlet recursion.
 + 444485 Client resets stream, pending server data is failed, write hangs.
 + 444517 Ensure WebSocketUpgradeFilter is always first in filter chain
 + 444547 Format exception in ResourceCache.Content.toString()
 + 444617 Expose local and remote socket address to applications
 + 444721 PushCacheFilter cleanup/improvements.
 + 444748 WebSocketClient.stop() does not unregister from ShutdownThread
 + 444764 HttpClient notifies callbacks for last chunk of content twice.
 + 444771 JSR356 / EndPointConfig.userProperties are not unique per endpoint
   upgrade
 + 445167 Allow configuration of dispatch after select.
 + 445823 Moved RequestLog calling to HttpChannel
 + 446559 Avoid spin consuming extra data
 + 446564 Refactored RequestLog Mechanism
 + 446944 ServletTester and HttpTester should be in
   <classifier>tests</classifier>
 + 447216 putAll Properties in XmlConfiguration
 + 447515 Remove GzipFilter
 + 448156 Fixed INACTIVE race in IteratingCallback
 + 448675 Impossible to set own Threadpool when using jetty-maven-plugin
 + 449003 WARNING: Cannot enable requested module [protonego-impl]: not a valid
   module name
 + 449811 handle unquoted etags when gzipping
 + 450467 Integer overflow in Session expiry calculation in MongoSessionManager
 + 451973 Ambiguous module init location when mixing --add-to-start &
   --add-to-startd in the same exec
 + 451974 Combine multiple start license acknowledgement into one
 + 452188 Delay dispatch until content optimisation
 + 452322 Restore progress messages for --add-to-start(d) use
 + 452323 Start --list-config makes no hint on transitive enabled modules
 + 452329 Transitive modules in start.jar --add-to-start(d) are not added if
   enabled already in tree
 + 452465 100% CPU spin on page reload.
 + 452503 Start.jar --add-to-start=jstl results in GraphException: Unable to
   expand property in name: jsp-impl/${jsp-impl}-jstl
 + 453487 Recycle HttpChannelOverHTTP2
 + 453627 Fixed FileSystem test for nanosecond filesystems
 + 453636 Improved spin detection on test
 + 453829 Added HeaderRegexRule
 + 453834 CDI Support for WebSocket
 + 454152 Remove mux remnants from WebSocketClient
 + 454934 WebSocketClient / connectToServer can block indefinitely during
   upgrade failure
 + 454952 Allow Jetty to run in Java 8 compact 3 profile
 + 456209 Bad ContextClassLoader in WebSocket onMessage
 + 456956 Reduce ThreadLocal.remove() weak reference garbage
 + 457130 HTTPS request with IP host and HTTP proxy throws
   IllegalArgumentException.
 + 457309 Add test to ensure GET and HEAD response headers same for gzip
 + 457508 Add flag to scan exploded jars in jetty-jspc-maven-plugin
 + 457788 Powered By in o.e.j.util.Jetty conditional on sendServerVersion
 + 458478 JarFileResource improve performance of exist method
 + 458527 Implement an async proxy servlet that can perform content
   transformations.
 + 458663 Handle null header values
 + 459081 http2 push failures.
 + 459542 AsyncMiddleManServlet race condition on first download content.
 + 459655 Remove SPDY and NPN
 + 459681 Remove dead code after removal of glassfish jasper support
 + 459731 Update for drafts hpack-11 and http2-17
 + 459734 Update to apache jsp 8.0.20
 + 459845 Support upgrade from http1 to http2.
 + 460187 infinite recursion in sending error.
 + 460210 ExecutionStragegy producer for SelectManager calls onOpen from
   produce method
 + 460211 Fixed Idle race in ExecuteProduceRun
 + 460297 Parameterize infinispan.mod
 + 460670 Support multiple names in <Property> elements.
 + 460671 Rationalize property names.
 + 460746 HttpConfiguration#setPersistentConnectionsEnabled(boolean)
 + 461052 Local streams created after INITIAL_WINDOW_SIZE setting have wrong
   send window.
 + 461350 Update HttpParser IllegalCharacter handling to RFC7230
 + 461415 Maven Jetty Plugin ignores ZIP overlays
 + 462040 reverted and deprecated getStringField methods
 + 462098 Support setting ThreadGroup in ScheduledExecutorScheduler
 + 462162 StackOverflowException when response commit fails.
 + 462193 Asynchronous HttpOutput.close()
 + 463036 system properties to set ssl password and keypasword
 + 463144 modules do not see pre-downloaded ALPN libs
 + 464419 Removed xinetd support
 + 464438 ClassFileTransformer support in
   org.eclipse.jetty.webapp.WebAppClassLoader broken
 + 464442 Enable parallel class loading
 + 464528 NPE protection in getIncludedCipher suites
 + 464537 Updated setuid dependency to 1.0.3.
 + 464555 ALPN module download attempts to download jar before dir exists
 + 464556 Restrict start module downloads to ${jetty.base} paths only
 + 464564 NoSql sessions created inside a forward not persisted correctly
 + 464606 Support property expansion in "default" attribute of Property.
 + 464629 JDK8 Socket customization
 + 464630 Cannot configure Configuration classlist in osgi
 + 464633 Change Selection.how to Selection.criteria
 + 464706 HTTP/2 and async I/O: onDataAvailable() not called.
 + 464708 Support HttpConfiguration.delayDispatchUntilContent in HTTP/2.
 + 464724 MultiPartInputStreamParser.parse ServletException never thrown
 + 464727 Update Javadoc for Java 8 DocLint
 + 464744 PathMap.match() never throws IllegalArgumentException
 + 464837 Large META-INF/resources/ jars can significantly impact startup speed
 + 464839 Add limit to MongoSessionIdManager purge queries
 + 464869 org.eclipse.jetty.util.resource.PathResource do not work
 + 465118 Fixed GzipHandler handling of multiple closes
 + 465606 IteratingCallback.close() does not fail pending callback.
 + 465754 Unchecked PrintWriter errors
 + 465854 Provide java.nio.file.WatchService alternative for Scanner
 + 465857 Support HTTP/2 clear-text server-side upgrade.
 + 465867 Implement --skip-file-validation=<module>
 + 466005 Use Files.move(src,trgt) instead of File.rename for
   Part.write(filename)
 + 466283 Support specifying ALPN protocols in HTTP2Client.
 + 466618 Partial WebSocket Text delivery does not like incomplete UTF8
   sequences
 + 466619 Add WebSocketFrameListener for receiving WebSocket Frame information
 + 466628 Improve IllegalStateException on ServletInputStream.setReadListener()
 + 466645 Allow XmlConfiguration Properties to use Elements or Attributes
 + 466647 Add ${jetty.tag.version} property and expand URL properties
 + 466648 jetty-ssl download of keystore should be from tags, not master
 + 466669 Add nosql.mod into jetty distro
 + 466678 Make a .mod file for jdbc session management
 + 466774 Update jetty-all module for Jetty 9.3
 + 467036 WebSocketClient fails to process immediate frames from server
 + 467043 WebSocketClient close codes on protocol violation reported as policy
   violation
 + 467055 Mongodb session scavenging can result in very slow query
 + 467165 Add --skip-file-validation to start.jar --help output
 + 467281 Remove Java 1.7 support from Jetty 9.3
 + 467289 Not possible to specify jmxrmi port value
 + 467702 SslContextFactory not backward compatible
 + 467730 HTTP2 requires enabled ciphers to be sorted by blacklist
 + 467790 Update default etc files inside jetty-osgi-boot bundle
 + 468313 PushCacheFilter wrongly associates primary resources to themselves.
 + 468347 Fix modules/debuglog.mod.
 + 469241 Use null WatchService as loop terminator for PathWatcher.
 + 469341 Not possible to use old/deprecated start properties
 + 469414 Proxied redirects expose upstream server name.
 + 469633 Make SpinLock behavior pluggable.
 + 469799 Transitive module dependencies without ini templates are still added
   to ini
 + 469860 Add module metadata versioning to support backwards compat
 + 469863 fixed setNeedClientAuth/setWantClientAuth
 + 469936 Remove usages of SpinLock.
 + 469982 Produce warning for dynamic modules with ini-templates seen during
   --add-to-start
 + 469991 Fix logging levels in websocket client UpgradeConnection

jetty-9.2.12.v20150709 - 09 July 2015
 + 469414 Proxied redirects expose upstream server name.
 + 469936 Remove usages of SpinLock.
 + 470184 Send the proxy-to-server request more lazily.

jetty-9.2.11.v20150529 - 29 May 2015
 + 461499 ConnectionPool may leak connections.
 + 463579 Add support for 308 status code.
 + 464292 Implement stream-based transformer for AsyncMiddleManServlet.
 + 464438 ClassFileTransformer support in
   org.eclipse.jetty.webapp.WebAppClassLoader broken
 + 464740 DosFilter whiteList check improvement
 + 464869 PathResource.addPath allows absolute resolution.
 + 464989 AbstractSessionManager.removeEventListener() should remove
   HttpSessionIdListener
 + 465053 Prevent gzip buffer overflow on complete
 + 465181 HttpParser parse full end chunk.
 + 465202 Forked Mojo does not extract war overlays/dependencies
 + 465359 Resource.newResource(String res, boolean useCache) does not use
   useCache argument
 + 465360 URLResource.addPath should use _useCaches setting to create new
   Resource
 + 465700 NullPointerException in ResourceHandler with welcome files
 + 465734 DosFilter whitelist bit pattern fix
 + 465747 Jetty is failing to process all HTTP OPTIONS requests.
 + 466329 Fixed local only TestFilter
 + 467276 NPE protection in SslContextFactory
 + 467603 Response 401 from server hangs client.
 + 467936 w Check HttpOutput aggregateSize is < bufferSize
 + 468008 Scanner ignores directory length
 + 468421 HttpClient#send fails with IllegalArgumentException on non-lowercase
   schemes.
 + 468714 SelectorManager updateKey race without submit
 + 468747 XSS vulnerability in HttpSpiContextHandler

jetty-9.3.0.RC1 - 22 May 2015
 + 464839 Add limit to MongoSessionIdManager purge queries
 + 465053 Prevent gzip buffer overflow on complete
 + 466774 Update jetty-all module for Jetty 9.3
 + 467055 Mongodb session scavenging can result in very slow query
 + 467165 Add --skip-file-validation to start.jar --help output
 + 467276 NPE protection in SslContextFactory
 + 467281 Remove Java 1.7 support from Jetty 9.3
 + 467289 Not possible to specify jmxrmi port value
 + 467603 Response 401 from server hangs client.
 + 467702 SslContextFactory not backward compatible
 + 467730 HTTP2 requires enabled ciphers to be sorted by blacklist
 + 467790 Update default etc files inside jetty-osgi-boot bundle
 + 467936 w Check HttpOutput aggregateSize is < bufferSize

jetty-9.3.0.RC0 - 12 May 2015
 + 414479 Add WebSocketPingPongListener for those that want PING/PONG payload
   data
 + 420678 Add WebSocketPartialListener to support receiving partial WebSocket
   TEXT/BINARY messages
 + 423974 Optimize flow control.
 + 430951 Support SNI with ExtendedSslContextFactory
 + 436345 Refactor AbstractSession to minimize burden on subclasses to
   implement behaviour
 + 440106 Improve ProtocolHandler APIs.
 + 444721 PushCacheFilter cleanup/improvements.
 + 446564 Refactored RequestLog Mechanism
 + 451973 Ambiguous module init location when mixing --add-to-start &
   --add-to-startd in the same exec
 + 453834 CDI Support for WebSocket
 + 454934 WebSocketClient / connectToServer can block indefinitely during
   upgrade failure
 + 457309 Add test to ensure GET and HEAD response headers same for gzip
 + 457508 Add flag to scan exploded jars in jetty-jspc-maven-plugin
 + 457788 Powered By in o.e.j.util.Jetty conditional on sendServerVersion
 + 458478 JarFileResource improve performance of exist method
 + 459273 Redundant license notices
 + 459734 Update to apache jsp 8.0.20
 + 459845 Support upgrade from http1 to http2.
 + 460187 infinite recursion in sending error.
 + 460297 Parameterize infinispan.mod
 + 460671 Rationalize property names.
 + 460746 HttpConfiguration#setPersistentConnectionsEnabled(boolean)
 + 461415 Maven Jetty Plugin ignores ZIP overlays
 + 461499 ConnectionPool may leak connections.
 + 461919 Use osgi-friendly serviceloader mechanism for WebSocketServletFactory
 + 461941 JMX Remote host:port set from start properties
 + 462040 reverted and deprecated getStringField methods
 + 462098 Support setting ThreadGroup in ScheduledExecutorScheduler
 + 462162 StackOverflowException when response commit fails.
 + 462193 Asynchronous HttpOutput.close()
 + 462546 ShutdownMonitor should bind to jetty.host
 + 462616 Race between finishing a connect and timing it out.
 + 463036 system properties to set ssl password and keypasword
 + 463144 modules do not see pre-downloaded ALPN libs
 + 463579 Add support for 308 status code.
 + 464292 Implement stream-based transformer for AsyncMiddleManServlet.
 + 464419 Removed xinetd support
 + 464438 ClassFileTransformer support in
   org.eclipse.jetty.webapp.WebAppClassLoader broken
 + 464442 Enable parallel class loading
 + 464528 NPE protection in getIncludedCipher suites
 + 464537 Updated setuid dependency to 1.0.3.
 + 464555 ALPN module download attempts to download jar before dir exists
 + 464556 Restrict start module downloads to ${jetty.base} paths only
 + 464564 NoSql sessions created inside a forward not persisted correctly
 + 464606 Support property expansion in "default" attribute of Property.
 + 464629 JDK8 Socket customization
 + 464630 Cannot configure Configuration classlist in osgi
 + 464633 Change Selection.how to Selection.criteria
 + 464706 HTTP/2 and async I/O: onDataAvailable() not called.
 + 464708 Support HttpConfiguration.delayDispatchUntilContent in HTTP/2.
 + 464724 MultiPartInputStreamParser.parse ServletException never thrown
 + 464727 Update Javadoc for Java 8 DocLint
 + 464740 DosFilter whiteList check improvement
 + 464744 PathMap.match() never throws IllegalArgumentException
 + 464837 Large META-INF/resources/ jars can significantly impact startup speed
 + 464869 org.eclipse.jetty.util.resource.PathResource do not work
 + 464989 AbstractSessionManager.removeEventListener() should remove
   HttpSessionIdListener
 + 465181 HttpParser parse full end chunk.
 + 465202 Forked Mojo does not extract war overlays/dependencies
 + 465359 Resource.newResource(String res, boolean useCache) does not use
   useCache argument
 + 465360 URLResource.addPath should use _useCaches setting to create new
   Resource
 + 465606 IteratingCallback.close() does not fail pending callback.
 + 465700 NullPointerException in ResourceHandler with welcome files
 + 465734 DosFilter whitelist bit pattern fix
 + 465747 Jetty is failing to process all HTTP OPTIONS requests.
 + 465754 Unchecked PrintWriter errors
 + 465854 Provide java.nio.file.WatchService alternative for Scanner
 + 465857 Support HTTP/2 clear-text server-side upgrade.
 + 465867 Implement --skip-file-validation=<module>
 + 466005 Use Files.move(src,trgt) instead of File.rename for
   Part.write(filename)
 + 466283 Support specifying ALPN protocols in HTTP2Client.
 + 466329 Fixed local only TestFilter
 + 466618 Partial WebSocket Text delivery does not like incomplete UTF8
   sequences
 + 466619 Add WebSocketFrameListener for receiving WebSocket Frame information
 + 466628 Improve IllegalStateException on ServletInputStream.setReadListener()
 + 466645 Allow XmlConfiguration Properties to use Elements or Attributes
 + 466647 Add ${jetty.tag.version} property and expand URL properties
 + 466648 jetty-ssl download of keystore should be from tags, not master
 + 466669 Add nosql.mod into jetty distro
 + 466678 Make a .mod file for jdbc session management
 + 466774 Update jetty-all module for Jetty 9.3
 + 467036 WebSocketClient fails to process immediate frames from server
 + 467043 WebSocketClient close codes on protocol violation reported as policy
   violation

jetty-9.2.11.M0 - 25 March 2015
 + 454934 WebSocketClient / connectToServer can block indefinitely during
   upgrade failure
 + 459273 Redundant license notices
 + 461499 ConnectionPool may leak connections.
 + 461919 Use osgi-friendly serviceloader mechanism for WebSocketServletFactory
 + 461941 JMX Remote host:port set from start properties
 + 462546 ShutdownMonitor should bind to jetty.host
 + 462616 Race between finishing a connect and timing it out.

jetty-9.3.0.M2 - 11 March 2015
 + 383207 Use BundleFileLocatorHelperFactory to obtain BundleFileLocatorHelper
 + 420944 Hot Deployment of WAR when Context XML exists doesn't trigger
   redeploy
 + 423974 Optimize flow control.
 + 424368 Add CONTRIBUTING.md
 + 430951 Improved ordering of SSL ciphers
 + 439374 Use utf-8 as default charset for html
 + 440506 Jetty OSGi boot bundle does not support OSGi framework Eclipse
   Concierge
 + 443652 Remove dependency on java.lang.management classes
 + 445518 Provide different error callbacks to ProxyServlet.
 + 446564 Refactored RequestLog Mechanism
 + 447472 Clear async context timeout on async static content
 + 448446 org.eclipse.jetty.start.Main create classloader duplicate
 + 448944 Provide m2e lifecycle mapping metadata for jetty-jspc-maven-plugin
 + 449594 Handle ArrayTrie overflow with false return
 + 449811 handle unquoted etags when gzipping
 + 450467 Integer overflow in Session expiry calculation in MongoSessionManager
 + 450483 Missing parameterization of etc/jetty-deploy.xml.
 + 450484 Missing parameterization of etc/jetty-http[s].xml.
 + 450855 GzipFilter MIGHT_COMPRESS exception
 + 450873 Disable tests that downcaste wrapped GzipFilterResponses
 + 450894 jetty.sh does not delete JETTY_STATE at start
 + 451092 Connector will fail if HeaderListener return false.
 + 451529 Change sentinel class for finding jstl on classpath to
   org.apache.taglibs.standard.tag.rt.core.WhenTag
 + 451634 DefaultServlet: useFileMappedBuffer javadoc is misleading
 + 451973 Ambiguous module init location when mixing --add-to-start &
   --add-to-startd in the same exec
 + 451974 Combine multiple start license acknowledgement into one
 + 452188 Delay dispatch until content optimisation
 + 452201 Set the container classloader for osgi during webbundle undeploy
 + 452246 Fixed SSL hang on last chunk
 + 452261 Ensure <jsp-file> works with new JettyJspServlet
 + 452322 Restore progress messages for --add-to-start(d) use
 + 452323 Start --list-config makes no hint on transitive enabled modules
 + 452329 Transitive modules in start.jar --add-to-start(d) are not added if
   enabled already in tree
 + 452424 Do not add Date header if already set
 + 452465 100% CPU spin on page reload.
 + 452503 Start.jar --add-to-start=jstl results in GraphException: Unable to
   expand property in name: jsp-impl/${jsp-impl}-jstl
 + 452516 Make HttpOutput aggregation size configurable.
 + 453386 Jetty not working when configuring QueuedThreadPool with
   minThreads=0.
 + 453487 Recycle HttpChannelOverHTTP2
 + 453627 Fixed FileSystem test for nanosecond filesystems
 + 453629 Fixed big write test
 + 453636 Improved spin detection on test
 + 453793 _maxHeaderBytes>0 is not verified in parseNext() when in
   State.CLOSED.
 + 453801 Jetty does not check for already registered services when
   bootstrapping
 + 453829 removed code with yahoo copyright
 + 454152 Remove mux remnants from WebSocketClient
 + 454157 HttpInput.consumeAll spins if input is in async mode.
 + 454291 Added busy threads JMX attribute to QueuedThreadPool
 + 454773 SSLConnection use on Android client results in loop
 + 454952 Allow Jetty to run in Java 8 compact 3 profile
 + 454954 Jetty osgi should skip fragment and required bundles that are in the
   uninstalled state
 + 454955 OSGi AnnotationParser should skip resources that are not in the
   classpath and close the class inputstream when done scanning it
 + 454983 Source bundles should not be singleton
 + 455047 Update JASPI
 + 455174 jetty-plus JNDI tests should use unique JNDI paths
 + 455330 Multiple Jetty-ContextFilePath entries separated by commas doesn't
   work
 + 455436 ProxyServlet sends two User-Agent values.
 + 455476 Persist updated session expiry time for MongoSessionManager
 + 455655 ensure multipart form-data parsing exception thrown to servlet
 + 455863 Fixed jetty.sh handling of multiple JETTY_ARGS
 + 456209 Bad ContextClassLoader in WebSocket onMessage
 + 456426 Exception on context undeploy from EnvConfiguration
 + 456486 Jar containing ServiceContainerInitializer impl not found in TCCL in
   osgi
 + 456521 ShutdownHandler should shut down more gracefully
 + 456956 Reduce ThreadLocal.remove() weak reference garbage
 + 457017 Reflective call to websocket methods that fail have ambiguous
   exceptions
 + 457032 Request sent from a failed CompleteListener due to connect timeout is
   failed immediately.
 + 457130 HTTPS request with IP host and HTTP proxy throws
   IllegalArgumentException.
 + 457696 JMX implementation should not be overridden by WebApp classes
 + 457893 Close temp jar resource
 + 458101 added test for maxFormContentSize
 + 458140 Added DispatcherType support to RewriteHandler
 + 458174 Example Jar Server
 + 458175 multipart annotation on lazily loaded servlet does not work
 + 458209 Length check for HttpMethod MOVE lookahead
 + 458354 ALPNServerConnection.select negotiation.
 + 458495 CompletableCallback may not notify failures.
 + 458527 Implement an async proxy servlet that can perform content
   transformations.
 + 458568 JDBCLoginService javadoc incorrectly references HashLoginService
 + 458663 Handle null header values
 + 458849 org.eclipse.jetty.util.Uptime.DefaultImpl() not available on GAE
 + 459006 master branch does not build on norwegian locale
 + 459081 http2 push failures.
 + 459125 GzipHandler default mimeType behavior incorrect
 + 459273 Redundant license notices
 + 459352 AsyncMiddleManServlet should set "Host:" header correctly in proxy to
   remote request headers.
 + 459490 Defining a duplicate error page in webdefault.xml and web.xml results
   in an error
 + 459542 AsyncMiddleManServlet race condition on first download content.
 + 459560 jetty.sh handles start.d and no start.ini
 + 459655 Remove SPDY and NPN
 + 459681 Remove dead code after removal of glassfish jasper support
 + 459731 Update for drafts hpack-11 and http2-17
 + 459769 AsyncMiddleManServlet race condition on last download content.
 + 459845 Support upgrade from http1 to http2/websocket
 + 459963 Failure writing content of a committed request leaks connections.
 + 460176 When checking for precompiled jsp, ensure classname is present
 + 460180 Jaas demo has wrong doco in html
 + 460210 ExecutionStragegy producer for SelectManager calls onOpen from
   produce method
 + 460211 Fixed Idle race in ExecuteProduceRun
 + 460291 AsyncGzipFilter Mappings
 + 460371 AsyncMiddleManServlet.GZipContentTransformer fails if last transform
   has no output
 + 460372 if web.xml does not contain jspc maven plugin insertionMarker
   behavior is wrong
 + 460443 Race condition releasing the response buffer.
 + 460642 HttpParser error 400 can expose previous buffer contents in HTTP
   status reason message
 + 460670 Support multiple names in <Property> elements.
 + 460769 ClientUpgradeRequest sends cookies in the wrong format
 + 460905 Make sure TimeoutCompleteListener is cancelled if the request cannot
   be sent.
 + 461052 Local streams created after INITIAL_WINDOW_SIZE setting have wrong
   send window.
 + 461070 Handle setReadListener on request with no content
 + 461133 allow stop port to reuse address
 + 461350 Update HttpParser IllegalCharacter handling to RFC7230
 + 461452 Double release of buffer by HttpReceiverOverHTTP
 + 461499 ConnectionPool may leak connections.
 + 461623 BufferUtil.writeTo does not update position consistently
 + 461643 HttpContent.advance() race.

jetty-9.2.10.v20150310 - 10 March 2015
 + 445518 Provide different error callbacks to ProxyServlet.
 + 456521 ShutdownHandler should shut down more gracefully
 + 458140 Added DispatcherType support to RewriteHandler
 + 460769 ClientUpgradeRequest sends cookies in the wrong format
 + 460905 Make sure TimeoutCompleteListener is cancelled if the request cannot
   be sent.
 + 461070 Handle setReadListener on request with no content
 + 461133 allow stop port to reuse address
 + 461452 Double release of buffer by HttpReceiverOverHTTP
 + 461499 ConnectionPool may leak connections.
 + 461623 BufferUtil.writeTo does not update position consistently
 + 461643 HttpContent.advance() race.

jetty-9.2.9.v20150224 - 24 February 2015
 + 459273 Redundant license notices
 + 460176 When checking for precompiled jsp, ensure classname is present
 + 460180 Jaas demo has wrong doco in html
 + 460291 AsyncGzipFilter Mappings
 + 460371 AsyncMiddleManServlet.GZipContentTransformer fails if last transform
   has no output
 + 460372 if web.xml does not contain jspc maven plugin insertionMarker
   behavior is wrong
 + 460443 Race condition releasing the response buffer.
 + 460642 HttpParser error 400 can expose previous buffer contents in HTTP
   status reason message

jetty-9.2.8.v20150217 - 17 February 2015
 + 451092 Connector will fail if HeaderListener return false.
 + 455436 ProxyServlet sends two User-Agent values.
 + 457893 Close temp jar resource
 + 458101 added test for maxFormContentSize
 + 458174 Example Jar Server
 + 458175 multipart annotation on lazily loaded servlet does not work
 + 458209 Length check for HttpMethod MOVE lookahead
 + 458354 ALPNServerConnection.select negotiation.
 + 458495 CompletableCallback may not notify failures.
 + 458527 Implement an async proxy servlet that can perform content
   transformations.
 + 458568 JDBCLoginService javadoc incorrectly references HashLoginService
 + 458849 org.eclipse.jetty.util.Uptime.DefaultImpl() not available on GAE
 + 459006 master branch does not build on norwegian locale
 + 459125 GzipHandler default mimeType behavior incorrect
 + 459352 AsyncMiddleManServlet should set "Host:" header correctly in proxy to
   remote request headers.
 + 459490 Defining a duplicate error page in webdefault.xml and web.xml results
   in an error
 + 459542 AsyncMiddleManServlet race condition on first download content.
 + 459560 jetty.sh handles start.d and no start.ini
 + 459769 AsyncMiddleManServlet race condition on last download content.
 + 459845 Support upgrade
 + 459963 Failure writing content of a committed request leaks connections.

jetty-9.2.7.v20150116 - 16 January 2015
 + 420944 Hot Deployment of WAR when Context XML exists doesn't trigger
   redeploy
 + 448944 Provide m2e lifecycle mapping metadata for jetty-jspc-maven-plugin
 + 452201 Set the container classloader for osgi during webbundle undeploy
 + 454291 Added busy threads JMX attribute to QueuedThreadPool
 + 454773 SSLConnection use on Android client results in loop
 + 454954 Jetty osgi should skip fragment and required bundles that are in the
   uninstalled state
 + 454955 OSGi AnnotationParser should skip resources that are not in the
   classpath and close the class inputstream when done scanning it
 + 454983 Source bundles should not be singleton
 + 455047 Update JASPI
 + 455174 jetty-plus JNDI tests should use unique JNDI paths
 + 455330 Multiple Jetty-ContextFilePath entries separated by commas doesn't
   work
 + 455476 Persist updated session expiry time for MongoSessionManager
 + 455655 ensure multipart form-data parsing exception thrown to servlet
 + 455863 Fixed jetty.sh handling of multiple JETTY_ARGS
 + 456426 Exception on context undeploy from EnvConfiguration
 + 456486 Jar containing ServiceContainerInitializer impl not found in TCCL in
   osgi
 + 456956 Reduce ThreadLocal.remove() weak reference garbage
 + 457017 Reflective call to websocket methods that fail have ambiguous
   exceptions
 + 457032 Request sent from a failed CompleteListener due to connect timeout is
   failed immediately.
 + 457130 HTTPS request with IP host and HTTP proxy throws
   IllegalArgumentException.
 + 457696 JMX implementation should not be overridden by WebApp classes

jetty-9.2.6.v20141205 - 05 December 2014
 + 383207 Use BundleFileLocatorHelperFactory to obtain BundleFileLocatorHelper
 + 443652 Remove dependency on java.lang.management classes
 + 447472 Clear async context timeout on async static content
 + 451529 Change sentinel class for finding jstl on classpath to
   org.apache.taglibs.standard.tag.rt.core.WhenTag
 + 451634 DefaultServlet: useFileMappedBuffer javadoc is misleading
 + 452188 Delay dispatch until content optimisation.
 + 452201 EnvConfiguration.destroy() should set the classloader
 + 452246 Fixed SSL hang on last chunk
 + 452261 Multiple servlets map to path *.jsp when using jsp-property-group
 + 452424 Do not add Date header if already set
 + 452516 Make HttpOutput aggregation size configurable.
 + 453386 Jetty not working when configuring QueuedThreadPool with
   minThreads=0.
 + 453629 Fixed big write test
 + 453793 _maxHeaderBytes>0 is not verified in parseNext() when in
   State.CLOSED.
 + 453801 Jetty does not check for already registered services when
   bootstrapping
 + 454157 HttpInput.consumeAll spins if input is in async mode.

jetty-9.2.5.v20141112 - 12 November 2014
 + 448446 org.eclipse.jetty.start.Main create classloader duplicate
 + 449594 Handle ArrayTrie overflow with false return
 + 449811 handle unquoted etags when gzipping
 + 450467 Integer overflow in Session expiry calculation in MongoSessionManager
 + 450483 Missing parameterization of etc/jetty-deploy.xml.
 + 450484 Missing parameterization of etc/jetty-http[s].xml.
 + 450855 GzipFilter MIGHT_COMPRESS exception
 + 450873 Disable tests that downcaste wrapped GzipFilterResponses
 + 450894 jetty.sh does not delete JETTY_STATE at start

jetty-9.3.0.M1 - 03 November 2014
 + 376365 "jetty.sh start" returns 0 on failure
 + 396569 'bin/jetty.sh stop' reports 'OK' even when jetty was not running
 + 396572 Starting jetty from cygwin is not working properly
 + 437303 Serving of static filenames with "unwise" characters causes 404 error
 + 440729 SSL requests often fail with EOFException or IllegalStateException.
 + 440925 NPE when using relative paths for --start-log-file
 + 442419 CrossOriginFilter javadoc says "exposeHeaders", but should be
   "exposedHeaders"
 + 442942 Content sent with status 204 (No Content)
 + 443529 CrossOriginFilter does not accept wildcard for allowedHeaders
 + 443530 CrossOriginFilter does not set the Vary header
 + 443550 improved FileResource encoded alias checking
 + 444031 Ensure exceptions do not reduce threadpool below minimum
 + 444595 nosql/mongodb - Cleanup process/Refreshing does not respect encoding
   of attribute keys
 + 444676 Goal jetty:deploy-war produces errors with version 9.2.3
 + 444722 Fixed order of setReuseAddress call
 + 444896 Overriding of web-default servlet mapping in web.xml not working with
   quickstart
 + 445157 First redeployed servlet leaks WebAppContext
 + 445167 Allow configuration of dispatch after select.
 + 445239 Rename weld.mod to cdi.mod to be consistent with past module namings
 + 445258 STOP.WAIT is not really respected
 + 445374 Reevaluate org.eclipse.jetty.websocket.jsr356 enablement concepts
 + 445495 Improve Exception message when no jndi resource to bind for a name in
   web.xml
 + 445542 Add SecuredRedirectHandler for embedded jetty use to redirect to
   secure port/scheme
 + 445821 Error 400 should be logged with RequestLog
 + 445823 Moved RequestLog calling to HttpChannel
 + 445830 Support setting environment variables on forked jetty with
   jetty:run-forked
 + 445979 jetty.sh fails to start when start-stop-daemon does not exist and the
   user is not root
 + 446033 org.eclipse.jetty.websocket.server.WebSocketServerFactory not
   available in OSGi
 + 446063 ALPN Fail SSL Handshake if no supported Application Protocols.
 + 446107 NullPointerException in ProxyServlet when extended by Servlet without
   a package
 + 446425 Oracle Sql error on JettySessions table when this table do not exist
   already
 + 446506 getAsyncContext ISE before startAsync on async dispatches
 + 446559 Avoid spin consuming extra data
 + 446563 Null HttpChannel.getCurrentHttpChannel() in
   ServletHandler.doFilter().
 + 446564 Refactored RequestLog Mechanism
 + 446672 NPN Specification issue in the case no protocols are selected.
 + 446923 SharedBlockingCallback does not handle connector max idle time of
   Long.MAX_VALUE; BlockerTimeoutException not serializable
 + 446944 ServletTester and HttpTester should be in
   <classifier>tests</classifier>
 + 447216 putAll Properties in XmlConfiguration
 + 447381 Disable SSLv3 by default.
 + 447472 test harness for slow large writes
 + 447515 Remove GzipFilter
 + 447627 MultiPart file always created when "filename" set in
   Content-Disposition
 + 447629 getPart()/getParts() fails on Multipart request if getParameter is
   called in a filter first
 + 447746 HttpClient is always going to send User-Agent header even though I do
   not want it to.
 + 447979 Refactor to make MetaData responsible for progressively ordering
   web-inf jars
 + 448156 Fixed INACTIVE race in IteratingCallback
 + 448225 Removed unnecessary synchronize on initParser
 + 448675 Impossible to set own Threadpool when using jetty-maven-plugin
 + 448841 Clarified selectors==0 javadoc 448840 Clarified ServerConnector
   javadoc 448839 Fixed javadoc typo in ServerConnector
 + 449001 Remove start.d directory from JETTY_HOME
 + 449003 WARNING: Cannot enable requested module [protonego-impl]: not a valid
   module name
 + 449038 WebSocketUpgradeFilter must support async.
 + 449175 Removed extra space in NCSA log
 + 449372 Make jvmArgs of jetty:run-forked configurable from command line

jetty-9.2.4.v20141103 - 03 November 2014
 + 376365 "jetty.sh start" returns 0 on failure
 + 396569 'bin/jetty.sh stop' reports 'OK' even when jetty was not running
 + 396572 Starting jetty from cygwin is not working properly
 + 438387 NullPointerException after ServletUpgradeResponse.sendForbidden is
   called during WebSocketCreator.createWebSocket
 + 440729 SSL requests often fail with EOFException or IllegalStateException.
 + 440925 NPE when using relative paths for --start-log-file
 + 442419 CrossOriginFilter javadoc says "exposeHeaders", but should be
   "exposedHeaders"
 + 442495 Bad Context ClassLoader in JSR356 WebSocket onOpen
 + 442942 Content sent with status 204 (No Content)
 + 443529 CrossOriginFilter does not accept wildcard for allowedHeaders
 + 443530 CrossOriginFilter does not set the Vary header
 + 443550 improved FileResource encoded alias checking
 + 444031 Ensure exceptions do not reduce threadpool below minimum
 + 444124 JSP include with <servlet><jsp-file> can cause infinite recursion
 + 444214 Socks4Proxy fails when reading less than 8 bytes.
 + 444222 replace CRLF in header values with whitespace rather than ?
 + 444415 iterative WriteFlusher
 + 444416 AsyncProxyServlet recursion.
 + 444517 Ensure WebSocketUpgradeFilter is always first in filter chain
 + 444547 Format exception in ResourceCache.Content.toString()
 + 444595 nosql/mongodb - Cleanup process/Refreshing does not respect encoding
   of attribute keys
 + 444617 Expose local and remote socket address to applications
 + 444676 Goal jetty:deploy-war produces errors with version 9.2.3
 + 444722 Fixed order of setReuseAddress call
 + 444748 WebSocketClient.stop() does not unregister from ShutdownThread
 + 444764 HttpClient notifies callbacks for last chunk of content twice.
 + 444771 JSR356 / EndPointConfig.userProperties are not unique per endpoint
   upgrade
 + 444863 ProxyServlet does not filter headers listed by the Connection header.
 + 444896 Overriding of web-default servlet mapping in web.xml not working with
   quickstart
 + 445157 First redeployed servlet leaks WebAppContext
 + 445167 Allow configuration of dispatch after select.
 + 445239 Rename weld.mod to cdi.mod to be consistent with past module namings
 + 445258 STOP.WAIT is not really respected
 + 445374 Reevaluate org.eclipse.jetty.websocket.jsr356 enablement concepts
 + 445495 Improve Exception message when no jndi resource to bind for a name in
   web.xml
 + 445542 Add SecuredRedirectHandler for embedded jetty use to redirect to
   secure port/scheme
 + 445821 Error 400 should be logged with RequestLog
 + 445823 RequestLogHandler at end of HandlerCollection doesn't work
 + 445830 Support setting environment variables on forked jetty with
   jetty:run-forked
 + 445979 jetty.sh fails to start when start-stop-daemon does not exist and the
   user is not root
 + 446033 org.eclipse.jetty.websocket.server.WebSocketServerFactory not
   available in OSGi
 + 446063 ALPN Fail SSL Handshake if no supported Application Protocols.
 + 446107 NullPointerException in ProxyServlet when extended by Servlet without
   a package
 + 446425 Oracle Sql error on JettySessions table when this table do not exist
   already
 + 446506 getAsyncContext ISE before startAsync on async dispatches
 + 446559 Avoid spin consuming extra data
 + 446563 Null HttpChannel.getCurrentHttpChannel() in
   ServletHandler.doFilter().
 + 446564 Refactored RequestLog Mechanism
 + 446672 NPN Specification issue in the case no protocols are selected.
 + 446923 SharedBlockingCallback does not handle connector max idle time of
   Long.MAX_VALUE; BlockerTimeoutException not serializable
 + 446944 ServletTester and HttpTester should be in
   <classifier>tests</classifier>
 + 447216 putAll Properties in XmlConfiguration
 + 447381 Disable SSLv3 by default.
 + 447472 test harness for slow large writes
 + 447515 Remove GzipFilter
 + 447627 MultiPart file always created when "filename" set in
   Content-Disposition
 + 447629 getPart()/getParts() fails on Multipart request if getParameter is
   called in a filter first
 + 447746 HttpClient is always going to send User-Agent header even though I do
   not want it to.
 + 447979 Refactor to make MetaData responsible for progressively ordering
   web-inf jars
 + 448156 Fixed INACTIVE race in IteratingCallback
 + 448225 Removed unnecessary synchronize on initParser
 + 448675 Impossible to set own Threadpool when using jetty-maven-plugin
 + 448841 Clarified selectors==0 javadoc 448840 Clarified ServerConnector
   javadoc 448839 Fixed javadoc typo in ServerConnector
 + 449001 Remove start.d directory from JETTY_HOME
 + 449003 WARNING: Cannot enable requested module [protonego-impl]: not a valid
   module name
 + 449038 WebSocketUpgradeFilter must support async.
 + 449175 Removed extra space in NCSA log
 + 449291 create-files downloads without license
 + 449372 Make jvmArgs of jetty:run-forked configurable from command line
 + 449603 OutputStreamContentProvider hangs when host is not available.

jetty-9.3.0.M0 - 24 September 2014
 + 437395 Start / Properties in template sections should be default applied for
   enabled modules
 + 438204 getServerName returns IPv6 addresses wrapped in []
 + 438387 NullPointerException after ServletUpgradeResponse.sendForbidden is
   called during WebSocketCreator.createWebSocket
 + 439369 Remove unused class CrossContextPsuedoSession
 + 439375 preferred rfc7231 format is mime;charset=lowercase-9
 + 442083 Client resets stream, pending server data is failed, connection
   closed.
 + 442086 Review HttpOutput blocking writes.
 + 442477 Allow Symlink aliases by default
 + 442495 Bad Context ClassLoader in JSR356 WebSocket onOpen
 + 442950 Embedded Jetty client requests to localhost hangs with high cpu usage
   (NIO OP_CONNECT Solaris/Sparc).
 + 443652 Remove dependency on java.lang.management classes
 + 443661 Rename manifest and service constants for jetty osgi resource
   fragment code
 + 443662 Consume buffer in write(ByteBuffer)
 + 443713 Reduce number of SelectionKey.setInterestOps() calls.
 + 443893 Make a module for weld
 + 444124 JSP include with <servlet><jsp-file> can cause infinite recursion
 + 444214 Socks4Proxy fails when reading less than 8 bytes.
 + 444222 replace CRLF in header values with whitespace rather than ?
 + 444415 iterative WriteFlusher
 + 444416 AsyncProxyServlet recursion.
 + 444485 Client resets stream, pending server data is failed, write hangs.
 + 444517 Ensure WebSocketUpgradeFilter is always first in filter chain
 + 444547 Format exception in ResourceCache.Content.toString()
 + 444617 Expose local and remote socket address to applications
 + 444748 WebSocketClient.stop() does not unregister from ShutdownThread
 + 444764 HttpClient notifies callbacks for last chunk of content twice.
 + 444771 JSR356 / EndPointConfig.userProperties are not unique per endpoint
   upgrade
 + 444863 ProxyServlet does not filter headers listed by the Connection header.

jetty-9.2.3.v20140905 - 05 September 2014
 + 347110 renamed class transformer methods
 + 411163 Add embedded jetty code example with JSP enabled
 + 435322 Added a idleTimeout to the SharedBlockerCallback
 + 435533 Handle 0 sized async gzip
 + 435988 ContainerLifeCycle: beans never stopped on remove
 + 436862 Update jetty-osgi to asm-5 and spifly-1.0.1
 + 438500 Odd NoClassDef errors when shutting down the jetty-maven-plugin via
   the stop goal
 + 440255 ensure 500 is logged on thrown Errors
 + 441073 isEarlyEOF on HttpInput
 + 441475 org.eclipse.jetty.server.ResourceCache exceptions under high load
 + 441479 Jetty hangs due to deadlocks in session manager
 + 441649 Update to jsp and el Apache Jasper 8.0.9
 + 441756 Ssl Stackoverflow on renegotiate
 + 441897 Fixed etag handling in gzipfilter
 + 442048 fixed sendRedirect %2F encoding
 + 442383 Improved insufficient threads message
 + 442628 Update example xml file for second server instance to extract wars
 + 442642 Quickstart generates valid XML
 + 442759 Allow specific ServletContainerInitializers to be excluded
 + 442950 Embedded Jetty client requests to localhost hangs with high cpu usage
   (NIO OP_CONNECT Solaris/Sparc).
 + 443049 Improved HttpParser illegal character messages
 + 443158 Fixed HttpOutput spin
 + 443172 web-fragment.xml wrongly parsed for applications running in serlvet
   2.4 mode
 + 443231 java.lang.NullPointerException on scavenge scheduling when session id
   manager declared before shared scheduler
 + 443262 Distinguish situation where jetty looks for tlds in META-INF but
   finds none vs does not look

jetty-8.1.16.v20140903 - 03 September 2014
 + 409788 Large POST body causes java.lang.IllegalStateException: SENDING =>
   HEADERS.
 + 433689 Evict idle HttpDestinations from client
 + 433802 check EOF in send1xx
 + 438996 Scavenger-Timer in HashSessionManager can die because of
   IllegalStateException from getMaxInactiveInterval
 + 442048 fixed sendRedirect %2F encoding
 + 442839 highly fragmented websocket messages can result in corrupt binary
   messages

jetty-7.6.16.v20140903 - 03 September 2014
 + 409788 Large POST body causes java.lang.IllegalStateException: SENDING =>
   HEADERS.
 + 433802 check EOF in send1xx
 + 442839 highly fragmented websocket messages can result in corrupt binary
   messages

jetty-9.2.2.v20140723 - 23 July 2014
 + 411323 DosFilter/QoSFilter should use AsyncContext rather than
   Continuations.
 + 432815 Fixed selector stop race
 + 434536 Improved Customizer javadoc
 + 435322 Fixed Iterating Callback close
 + 435653 encode async dispatched requestURI
 + 435895 jetty spring module is not in distribution
 + 436874 WebSocket client throwing a NullPointer when handling a pong
 + 436894 GzipFilter code cleanup
 + 436916 CGI: "Search docroot for a matching execCmd" logic is wrong
 + 436987 limited range of default acceptors and selectors
 + 437051 Refactor Filter chain handling of Request.isAsyncSupported
 + 437395 Start / Properties in template sections should be default applied for
   enabled modules
 + 437419 Allow scanning of META-INF for resources,fragments,tlds for unpacked
   jars
 + 437430 jettyXml not consistent between jetty:run and jetty:run-forked
 + 437462 consistent test failure in jetty-start under windows
 + 437706 ServletTester calls LocalConnector method with hardcoded timeout
 + 437800 URLs with single quote and spaces return 404
 + 437996 avoid async status race by not setting 200 on handled
 + 438079 Review garbage creation in 9.2.x series.
 + 438190 findbug improvements
 + 438204 leave IPv6 addresses [] wrapped in getServerName
 + 438327 Remove hard coded Allow from OPTIONS *
 + 438331 AbstractLogger.debug(String,long) infinite loop
 + 438434 ResourceHandler checks aliases
 + 438895 Add mvn jetty:effective-web-xml goal
 + 439066 javadoc setStopAtShutdown
 + 439067 Improved graceful stop timeout handling
 + 439194 Do not configure fake server for jetty:run-forked
 + 439201 GzipFilter and AsyncGzipFilter should strip charset from Content-Type
   before making exclusion comparison in doFilter
 + 439369 Deprecate CrossContextPseudoSession
 + 439387 Ensure empty servlet-class never generated for quickstart
 + 439390 Ensure jsp scratchdir is created same way for quickstart and
   non-quickstart
 + 439394 load-on-startup with value 0 not preserved for quickstart
 + 439399 Scan tlds for apache jasper standard taglib with jetty-maven-plugin
 + 439438 DataSourceLoginService does not refresh passwords when changed in
   database
 + 439507 Possible timing side-channel when comparing MD5-Credentials
 + 439540 setReuseAddress() in ServerConnector.java is not coded properly
 + 439652 GzipHandler super.doStart
 + 439663 Allow mappings to be declared before servlet/filter
 + 439672 support using Apache commons daemon for managing Jetty
 + 439753 ConstraintSecurityHandler has dead code for processing constraints
 + 439788 CORS filter headers gone between 9.2.0.M0 and 9.2.1 .v20140609 for
   ProxyServlet requests.
 + 439809 mvn jetty:jspc cannot find taglibs in dependency jars
 + 439895 No event callback should be invoked after the "failure" callback.
 + 440020 Abort bad proxy responses with sendError(-1)
 + 440038 Content decoding may fail.
 + 440114 ContextHandlerCollection does not skip context wrappers
 + 440122 Remove usages of ForkInvoker.

jetty-9.2.1.v20140609 - 09 June 2014
 + 347110 Supprt ClassFileTransormers in WebAppClassLoader
 + 432192 jetty-start / Allow JETTY_LOGS use for start-log-file
 + 432321 jetty-start / Allow defining extra start directories for common
   configurations
 + 435322 Improved debug
 + 436029 GzipFilter errors on asynchronous methods with message to
   AsyncGzipFilter
 + 436345 Refactor AbstractSession to minimize burden on subclasses to
   implement behaviour
 + 436388 Allow case-insensitive STOP.KEY and STOP.PORT use
 + 436405 ${jetty.base}/resources not on classpath with default configuration
 + 436520 Start / Allow https and file urls in jetty-start's module download
   mechanism
 + 436524 Start / Downloadable [files] references in modules cannot use ":"
   themselves

jetty-9.2.0.v20140526 - 26 May 2014
 + 429390 Decoders and Encoders are not registered for non-annotated
   ClientEndpoint
 + 434810 better handling of bad messages
 + 435086 ${jetty.base}/resources not on classpath when using
   --module=resources
 + 435088 lib/npn packaging of jetty-distribution is off
 + 435206 Can't add Cookie header on websocket ClientUpgradeRequest
 + 435217 Remove deprecated TagLibConfiguration
 + 435223 High cpu usage in
   FCGIHttpParser.parseContent(ResponseContentParser.java:314).
 + 435338 Incorrect handling of asynchronous content.
 + 435412 Make AbstractSession.access() more amenable to customization

jetty-9.2.0.RC0 - 15 May 2014
 + 419972 Support sending forms (application/x-www-form-urlencoded).
 + 420368 Default content types for ContentProviders.
 + 428966 Per-request cookie support.
 + 430418 Jetty 9.1.3 and Chrome 33 permessage-deflate do not work together
 + 431333 NPE In logging of WebSocket ExtensionConfig
 + 432321 jetty-start / Allow defining extra start directories for common
   configurations
 + 432939 Jetty Client ContentResponse should have methods such as
   getContentType() and getMediaType().
 + 433089 Client should provide Request.accept() method, like JAX-RS 2.0
   Invocation.Builder.accept().
 + 433405 Websocket Session.setMaxIdleTimeout fails with zero
 + 433689 Evict old HttpDestinations from HttpClient.
 + 434386 Request Dispatcher extracts args and prevents asyncIO.
 + 434395 WebSocket / memory leak, WebSocketSession not cleaned up in abnormal
   closure cases
 + 434447 Able to create a session after a response.sendRedirect
 + 434505 Allow property files on start.jar command line Signed-off-by: Tom
   Zeller<tzeller@dragonacea.biz>
 + 434578 Complete listener not called if redirected to an invalid URI.
 + 434679 Log static initialization via jetty-logging.properties fails
   sometimes
 + 434685 WebSocket read/parse does not discard remaining network buffer after
   unrecoverable error case
 + 434715 Avoid call to ServletHolder.getServlet() during handle() iff servlet
   is available and instantiated

jetty-9.2.0.M1 - 08 May 2014
 + 367680 jsp-file with load-on-startup not precompiled
 + 404511 removed deprecated StringMap
 + 409105 Upgrade jetty-osgi build/test to use more recent pax junit test
   framework
 + 424982 improved PID check in jetty.sh
 + 425421 ContainerLifeCycle does not start added beans in started state
 + 428904 Add logging of which webapp has path with uncovered http methods
 + 431094 Consistent handling of utf8 decoding errors
 + 431459 Jetty WebSocket compression extensions fails to handle big messages
   properly
 + 431519 Fixed NetworkTrafficListener
 + 431642 Implement ProxyServlet using Servlet 3.1 async I/O.
 + 432145 Pending request is not failed when HttpClient is stopped.
 + 432270 Slow requests with response content delimited by EOF fail.
 + 432321 jetty-start / Allow defining extra start directories for common
   configurations
 + 432468 Improve command CGI path handling
 + 432473 web.xml declaration order of filters not preserved on calls to init()
 + 432483 make osgi.serviceloader support for
   javax.servlet.ServletContainerInitializer optional (cherry picked from
   commit 31043d25708edbea9ef31948093f4eaf2247919b)
 + 432528 IllegalStateException when using DeferredContentProvider.
 + 432777 Async Write Loses Data with HTTPS Server.
 + 432901 ensure a single onError callback only in pending and unready states
 + 432993 Improve handling of ProxyTo and Prefix parameters in
   ProxyServlet.Transparent.
 + 433244 Security manager lifecycle cleanup
 + 433262 WebSocket / Advanced close use cases
 + 433365 No such servlet:
   __org.eclipse.jetty.servlet.JspPropertyGroupServlet__
 + 433370 PATCH method does not work with ProxyServlet.
 + 433431 Support ServletHandler fall through
 + 433479 Improved resource javadoc
 + 433483 sync log initialize
 + 433512 Jetty throws RuntimeException when webapp compiled with jdk8
   -parameters
 + 433563 Jetty fails to startup on windows - InvalidPathException
 + 433572 default to sending date header
 + 433656 Change to Opcode.ASM5 breaks jetty-osgi
 + 433692 improved buffer resizing
 + 433708 Improve WebAppClassLoader.addClassPath() IllegalStateException
   message
 + 433793 WebSocket / empty protocol list in ServerEndpointConfig.Configurator
   when using non-exact header name
 + 433841 Resource.newResource() declares an exception it does not throw
 + 433849 FileResource string compare fix
 + 433916 HttpChannelOverHttp handles HTTP 1.0 connection reuse incorrectly.
 + 434009 Improved javadoc for accessing HttpChannel and HttpConnection
 + 434027 ReadListener.onError() not invoked in case of read failures.
 + 434056 Support content consumed asynchronously.
 + 434074 Avoid double dispatch by returning false from messageComplete
 + 434077 AnnotatedServerEndpointTest emits strange exception
 + 434247 Redirect loop in FastCGI proxying for HTTPS sites.

jetty-8.1.15.v20140411 - 11 April 2014
 + 397167 Remote Access documentation is wrong
 + 419799 complete after exceptions thrown from async error pages
 + 420776 complete error pages after startAsync
 + 421197 fix method comment and ensure close synchronized
 + 422137 Added maxQueued to QueuedThreadPool MBean
 + 424180 improve bad message errors
 + 425038 WebSocketClient leaks file handles when exceptions are thrown from
   open()
 + 425551 Memory Leak in SelectConnector$ConnectTimeout.expired.
 + 426658 backport Bug 425930 to jetty-8
 + 427761 allow endpoints to be interrupted
 + 428708 JDBCSessionIdManager when clearing expired sessions failed, jetty
   should still be able to startup
 + 428710 JDBCSession(Id)Manager use 'read committed isolation level'
 + 430968 Use wrapped response with async dispatch
 + 432452 ConnectHandler does not timeout sockets in FIN_WAIT2.

jetty-7.6.15.v20140411 - 11 April 2014
 + 422137 Added maxQueued to QueuedThreadPool MBean
 + 425038 WebSocketClient leaks file handles when exceptions are thrown from
   open()
 + 425551 Memory Leak in SelectConnector$ConnectTimeout.expired.
 + 432452 ConnectHandler does not timeout sockets in FIN_WAIT2.

jetty-9.2.0.M0 - 09 April 2014
 + 419801 Upgrade to asm5 for jdk8
 + 423392 Fix buffer overflow in AsyncGzipFilter
 + 425736 jetty-start / Jetty 9 fails to startup with --exec option if Java
   path contain
 + 426920 jetty-start / BaseHome.listFilesRegex() and .recurseDir() do not
   detect filesystem loops
 + 427188 Re-enable automatic detection of logging-dependencies with
   logging-module
 + 429734 Implemented the HA ProxyProtocol
 + 430341 use apache jsp/jstl for maven plugins
 + 430747 jetty-start / Allow --lib and module [lib] to recursively add jars
 + 430825 jetty-start / use of jetty-jmx.xml prevents configuration of
   ThreadPool in jetty.xml
 + 431279 jetty-start / Unable to start jetty if no properties are defined.
 + 431892 DefaultFileLocatorHelper.getBundleInstallLocation fails for equinox
   3.10
 + 432122 ignore frequently failing test
 + 432145 Pending request is not failed when HttpClient is stopped.
 + 432270 Slow requests with response content delimited by EOF fail.

jetty-9.1.5.v20140505 - 05 May 2014
 + 431459 Jetty WebSocket compression extensions fails to handle big messages
   properly
 + 431519 Fixed NetworkTrafficListener
 + 432145 Pending request is not failed when HttpClient is stopped.
 + 432270 Slow requests with response content delimited by EOF fail.
 + 432473 web.xml declaration order of filters not preserved on calls to init()
 + 432483 make osgi.serviceloader support for
   javax.servlet.ServletContainerInitializer optional (cherry picked from
   commit 31043d25708edbea9ef31948093f4eaf2247919b)
 + 432528 IllegalStateException when using DeferredContentProvider.
 + 432777 Async Write Loses Data with HTTPS Server.
 + 432901 ensure a single onError callback only in pending and unready states
 + 432993 Improve handling of ProxyTo and Prefix parameters in
   ProxyServlet.Transparent.
 + 433365 No such servlet:
   __org.eclipse.jetty.servlet.JspPropertyGroupServlet__ (cherry picked from
   commit e2ed934978b958d6fccb28a8a5d04768f7c0432d)
 + 433370 PATCH method does not work with ProxyServlet.
 + 433483 sync log initialize
 + 433692 improved buffer resizing
 + 433916 HttpChannelOverHttp handles HTTP 1.0 connection reuse incorrectly.
 + 434027 ReadListener.onError() not invoked in case of read failures.

jetty-9.1.4.v20140401 - 01 April 2014
 + 414206 Rewrite rules re-encode requestURI
 + 414885 Don't expose JDT classes by default
 + 417022 Access current HttpConnection from Request not ThreadLocal
 + 423619 set Request timestamp on startRequest
 + 423982 removed duplicate UrlResource toString
 + 424107 Jetty should not finish chunked encoding on exception.
 + 425991 added qml mime type
 + 426897 improved ContainerLifeCycle javadoc
 + 427185 Add org.objectweb.asm. as serverClass
 + 427204 jetty-start / startup incorrectly requires directory in jetty.base
 + 427368 start.sh fails quietly on command line error
 + 428594 File upload with onMessage and InputStream fails
 + 428595 JSR-356 / ClientContainer does not support SSL
 + 428597 javax-websocket-client-impl and javax-websocket-server-impl jars
   Manifests do not export packages for OSGI
 + 428817 jetty-start / Allow for property to configure deploy manager
   `webapps` directory
 + 429180 Make requestlog filename parameterized
 + 429357 JDBCSessionManager.Session.removeAttribute don't set dirty flag if
   attribute already removed
 + 429409 osgi] jetty.websocket.servlet must import jetty.websocket.server
 + 429487 Runner code cleanups
 + 429616 Use UTF-8 encoding for XML
 + 429779 masked zero length websocket frame gives NullPointerException during
   streaming read
 + 430088 OnMessage*Callable decoding of streaming binary or text is not thread
   safe
 + 430242 added SharedBlockingCallback to support threadsafe blocking
 + 430273 Cancel async timeout breaks volatile link to avoid race with slow
   expire
 + 430341 add apache jsp and jstl optional modules
 + 430490 Added JETTY_SHELL 426738 Fixed JETTY_HOME comments
 + 430649 test form encoding
 + 430654 closing client connections can hang worker threads.
 + 430808 OutputStreamContentProvider violates OutputStream contract.
 + 430822 jetty-start / make soLingerTime configurable via property
 + 430823 jetty-start / make NeedClientAuth (ssl) configurable via property
 + 430824 jetty-start / use of jetty-logging.xml prevents configuration of
   ThreadPool in jetty.xml
 + 431103 Complete listener not called if request times out before processing
   exchange.
 + 431592 do not resolved forwarded-for address

jetty-9.1.3.v20140225 - 25 February 2014
 + 373952 Ensure MongoSessionManager un/binds session attributes on refresh
   only if necessary
 + 424899 Initialize GzipHandler mimeTypes
 + 426490 HttpServletResponse.setBufferSize(0) results in tight loop (100% cpu
   hog)
 + 427700 Outgoing extensions that create multiple frames should flush them in
   order and atomically.
 + 427738 fixed XSS in async-rest demo
 + 428157 Methods of anonymous inner classes can't be called via xml
 + 428232 Rework batch mode / buffering in websocket.
 + 428238 Test HEAD request with async IO
 + 428266 HttpRequest mangles URI query string.
 + 428383 limit white space between requests
 + 428418 JettyStopMojo prints some messages on System.err
 + 428435 Large streaming message fails in MessageWriter.
 + 428660 Delay closing async HttpOutput until after UNREADY->READY
 + 428710 JDBCSession(Id)Manager use read committed isolation level
 + 428859 Do not auto initialise jsr356 websocket if no annotations or
   EndPoints discovered

jetty-9.1.2.v20140210 - 10 February 2014
 + 408167 Complex object as session attribute not necessarily persisted.
 + 423421 remove org.slf4j and org.ow2.asm from jetty-all artifact
 + 424171 Old javax.activation jar interferes with email sending
 + 424562 JDBCSessionManager.setNodeIdInSessionId(true) does not work
 + 425275 
   org.eclipse.jetty.osgi.annotations.AnnotationConfiguration.BundleParserTask.getStatistic()
   returns null when debug is enabled.
 + 425638 Fixed monitor module/xml typos
 + 425696 start.jar --add-to-start={module} results in error
 + 425703 Review [Queued]HttpInput.
 + 425837 Upgrade to jstl 1.2.2
 + 425930 JDBC Session Manager constantly reloading session if save intervall
   expired once
 + 425998 JDBCSessionIdManager fails to create maxinterval column
 + 426250 jetty-all should be deployed on release
 + 426358 NPE generating temp dir name if no resourceBase or war
 + 426481 fix < java 1.7.0_10 npn files
 + 426739 Response with Connection: keep-alive truncated.
 + 426750 isReady() returns true at EOF
 + 426870 HTTP 1.0 Request with Connection: keep-alive and response content
   hangs.
 + 427068 ServletContext.getClassLoader should only check privileges if a
   SecurityManager exists
 + 427128 Cookies are not sent to the server.
 + 427245 StackOverflowError when session cannot be de-idled from disk
 + 427254 Cookies are not sent to the client.
 + 427512 ReadPendingException in case of HTTP Proxy tunnelling.
 + 427570 externalize common http config to start.ini
 + 427572 Default number of acceptors too big.
 + 427587 MessageInputStream must copy the payload.
 + 427588 WebSocket Parser leaks ByteBuffers.
 + 427690 Remove Mux Extension and related support.
 + 427699 WebSocket upgrade response sends Sec-WebSocket-Protocol twice.

jetty-9.1.1.v20140108 - 08 January 2014
 + 408912 JDBCSessionIdManager should allow configuration of schema
 + 410750 NPE Protection in Mongo save session
 + 417202 Start / command line arguments with ${variable} should be expanded
 + 418622 WebSocket / When rejecting old WebSocket protocols, log client
   details
 + 418769 Allow resourceBases in run-forked Mojo
 + 418888 Added strict mode to HttpGenerator
 + 419309 encode alias URIs from File.toURI
 + 419911 Empty chunk causes ArrayIndexOutOfBoundsException in
   InputStreamResponseListener.
 + 421189 WebSocket / AbstractExtension's WebSocketPolicy is not
   Session-specific
 + 421314 Websocket / Connect attempt with Chrome 32+ fails with "Some
   extension already uses the compress bit"
 + 421697 IteratingCallback improvements
 + 421775 CookiePatternRule only sets cookie if not set already
 + 421794 Iterator from InputStreamProvider is not implemented properly.
 + 421795 ContentProvider should have a method to release resources.
 + 422192 ClientContainer.getOpenSessions() always returns null
 + 422264 OutputStreamContentProvider does not work with Basic Authentication.
 + 422308 Change all session/sessionid managers to use shared Scheduler
 + 422386 Comma-separated <param-value>s not trimmed in GzipFilter
 + 422388 Test for GzipFilter apply to resources with charset appended to the
   MIME type
 + 422398 moved jmx remote config to jmx-remote.mod
 + 422427 improved TestConnection
 + 422703 Support reentrant HttpChannel and HttpConnection
 + 422723 Dispatch failed callbacks to avoid blocking selector
 + 422734 messages per second in ConnectorStatistics
 + 422807 fragment large written byte arrays to protect from JVM OOM bug
 + 423005 reuse gzipfilter buffers
 + 423048 Receiving a PING while sending a message kills the connection
 + 423060 Allow ${jetty.base}/work
 + 423118 ServletUpgradeRequest.getUserPrincipal() does not work
 + 423185 Update permessage-deflate for finalized spec
 + 423255 MBeans of SessionIdManager can leak memory on redeploy
 + 423361 Ensure ServletContainerInitializers called before injecting Listeners
 + 423373 Correct namespace use for JEE7 Schemas
 + 423392 GzipFilter without wrapping or blocking
 + 423395 Ensure @WebListeners are injected
 + 423397 Jetty server does not run on Linux server startup because of  a bug
   in jetty.sh script.
 + 423476 WebSocket / JSR / @OnMessage(maxMessageSize=20000000) not properly
   supported
 + 423556 HttpSessionIdListener should be resource injectable
 + 423646 WebSocket / JSR / WebSocketContainer (Client) should have its
   LifeCycle stop on standalone use
 + 423692 use UrlEncoded.ENCODING for merging forwarded query strings
 + 423695 <HT> Horizontal-tab used as HTTP Header Field separator unsupported
 + 423724 WebSocket / Rename MessageAppender.appendMessage to .appendFrame
 + 423739 Start checks module files.
 + 423804 WebSocket / JSR improper use of
   ServerEndpointConfig.Configurator.getNegotiatedSubprotocol()
 + 423875 Update jetty-distro build to use jetty-toolchain jetty-schemas 3.1.M0
 + 423915 WebSocket / Active connection from IOS that goes into airplane mode
   not disconnected on server side
 + 423926 Remove code duplication in class IdleTimeout.
 + 423930 SPDY streams are leaked.
 + 423948 Cleanup and consolidate testing utilities in WebSocket
 + 424014 PathContentProvider does not close its internal SeekableByteChannel.
 + 424043 IteratingCallback Idle race.
 + 424051 Using --list-config can result in NPE
 + 424168 Module [ext] should load libraries recursively from lib/ext/
 + 424180 extensible bad message content
 + 424183 Start does not find LIB (Classpath) when on non-English locale
 + 424284 Identify conflicts in logging when error "Multiple servlets map to
   {pathspec}" occurs
 + 424303 @ServletSecurity not applied on non load-on-startup servlets
 + 424307 obfuscate unicode
 + 424380 Augment class / Jar scanning timing log events
 + 424390 Allow enabling modules via regex
 + 424398 Servlet load-on-startup ordering is not obeyed
 + 424497 Allow concurrent async sends
 + 424498 made bytebufferendpoint threadsafe
 + 424588 org.eclipse.jetty.ant.AntWebInfConfiguration does not add
   WEB-INF/classes for annotation scanning
 + 424598 Module [npn] downloads wrong npn jar
 + 424651 org.eclipse.jetty.spdy.Flusher use of non-growable ArrayQueue yield
   java.lang.IllegalStateException: Full.
 + 424682 Session cannot be deserialized with form authentication
 + 424706 The setMaxIdleTimeout of javax.websocket.Session does not take any
   affect
 + 424734 WebSocket / Expose Locale information from ServletUpgradeRequest
 + 424735 WebSocket / Make ServletUpgradeRequest expose its HttpServletRequest
 + 424743 Verify abort behavior in case the total timeout expires before the
   connect timeout.
 + 424762 ShutdownHandler hardcodes "127.0.0.1" and cannot be used with IPv6
 + 424847 Deadlock in deflate-frame (webkit binary)
 + 424863 IllegalStateException "Unable to find decoder for type
   <javax.websocket.PongMessage>"
 + 425038 WebSocketClient leaks file handles when exceptions are thrown from
   open()
 + 425043 Track whether pools are used correctly.
 + 425049 add json mime mapping to mime.properties.

jetty-9.1.0.v20131115 - 15 November 2013
 + 397167 Remote Access documentation is wrong
 + 416477 QueuedThreadPool does not reuse interrupted threads
 + 420776 complete error pages after startAsync
 + 421362 When using the jetty.osgi.boot ContextHandler service feature the
   wrong ContextHandler can be undeployed

jetty-9.1.0.RC2 - 07 November 2013
 + 410656 WebSocketSession.suspend() hardcoded to return null
 + 417223 removed deprecated ThreadPool.dispatch
 + 418741 Threadlocal cookie buffer in response
 + 420359 fixed thread warnings
 + 420572 IOTest explicitly uses 127.0.0.1
 + 420692 set soTimeout to try to avoid hang
 + 420844 Connection:close on exceptional errors
 + 420930 Use Charset to specify character encoding
 + 421197 synchronize gzip output finish
 + 421198 onComplete never call onComplete in BufferingResponseListener in 9.1.

jetty-9.0.7.v20131107 - 07 November 2013
 + 407716 fixed logs
 + 416597 Allow classes and jars on the webappcontext extraclasspath to be
   scanned for annotations by jetty-maven-plugin
 + 418636 Name anonymous filter and holders with classname-hashcode
 + 418732 Add whiteListByPath mode to IPAccessHandler
 + 418767 run-forked goal ingores test scope dependencies with
   useTestScope=true
 + 418792 Session getProtocolVersion always returns null
 + 418892 SSL session caching so unreliable it effectively does not work.
 + 419309 Added symlink checker to test webapp
 + 419333 treat // as an alias in path
 + 419344 NPNServerConnection does not close the EndPoint if it reads -1.
 + 419350 Do not borrow space from passed arrays
 + 419655 AnnotationParser throws NullPointerException when scanning files from
   jar:file urls
 + 419687 HttpClient's query parameters must be case sensitive.
 + 419799 Async timeout dispatches to error page
 + 419814 Annotation properties maxMessageSize and inputBufferSize don't work
 + 419846 JDBCSessionManager doesn't determine dirty state correctly
 + 419901 Client always adds extra user-agent header.
 + 419937 Request isSecure cleared on recycle
 + 419950 Provide constructor for StringContentProvider that takes Charset.
 + 419964 InputStreamContentProvider does not close provided InputStream.
 + 420033 AsyncContext.onTimeout exceptions passed to onError
 + 420039 BufferingResponseListener continues processing after aborting
   request.
 + 420048 DefaultServlet alias checks configured resourceBase
 + 420142 reimplemented graceful shutdown
 + 420362 Response/request listeners called too many times.
 + 420374 Call super.close() in a finally block
 + 420530 AbstractLoginModule never fails a login
 + 420572 IOTest explicitly uses 127.0.0.1
 + 420776 complete error pages after startAsync
 + 420844 Connection:close on exceptional errors
 + 420930 Use Charset to specify character encoding
 + 421197 synchronize gzip output finish

jetty-8.1.14.v20131031 - 31 October 2013
 + 417772 fixed low resources idle timeout
 + 418636 Name anonymous filter and holders with classname-hashcode
 + 419432 Allow to override the SslContextFactory on a per-destination basis.
 + 420048 DefaultServlet alias checks configured resourceBase
 + 420530 AbstractLoginModule never fails a login

jetty-7.6.14.v20131031 - 31 October 2013
 + 417772 fixed low resources idle timeout
 + 418636 Name anonymous filter and holders with classname-hashcode
 + 419432 Allow to override the SslContextFactory on a per-destination basis.
 + 420048 DefaultServlet alias checks configured resourceBase
 + 420530 AbstractLoginModule never fails a login

jetty-9.1.0.RC1 - 31 October 2013
 + 294531 Unpacking webapp twice to the same directory name causes problems
   with updated jars in WEB-INF/lib
 + 397049 Cannot Provide Custom Credential to JDBCLoginService
 + 403591 improve the Blocking Q implementation.
 + 407716 fixed logs
 + 410840 Change SSLSession.getPeerCertificateChain() to
   SSLSession.getPeerCertificates().
 + 415118 WebAppClassLoader.getResource(name) should strip .class from name
 + 415609 spdy replace SessionInvoker with IteratingCallback. Introduce Flusher
   class to separate queuing/flushing logic from StandardSession
 + 416300 Order ServletContainerInitializer callbacks
 + 416597 Allow classes and jars on the webappcontext extraclasspath to be
   scanned for annotations by jetty-maven-plugin
 + 417356 Add SOCKS support to jetty client.
 + 417932 resources.mod should make ${jetty.base}/resources/ directory
 + 417933 logging.mod ini template should include commented log.class settings
 + 418212 org.eclipse.jetty.spdy.server.http.SSLExternalServerTest hangs.
 + 418441 Use of OPTIONS= in Jetty 9.1 should display WARNING message
 + 418596 Faults in JARs during class scanning should report the jar that
   caused the problem
 + 418603 cannot specify a custom ServerEndpointConfig.Configurator
 + 418625 WebSocket / Jsr RemoteEndpoint.sendObject(java.nio.HeapByteBuffer)
   doesn't find encoder
 + 418632 WebSocket / Jsr annotated @OnMessage with InputStream fails to be
   called
 + 418636 Name anonymous filter and holders with classname-hashcode
 + 418732 Add whiteListByPath mode to IPAccessHandler
 + 418767 run-forked goal ingores test scope dependencies with
   useTestScope=true
 + 418792 Session getProtocolVersion always returns null
 + 418892 SSL session caching so unreliable it effectively does not work.
 + 418922 Missing parameterization of etc/jetty-xinetd.xml
 + 418923 Missing parameterization of etc/jetty-proxy.xml
 + 419146 Parameterize etc/jetty-requestlog.xml values
 + 419309 Added symlink checker to test webapp
 + 419330 Allow access to setters on jetty-jspc-maven-plugin
 + 419333 treat // as an alias in path
 + 419344 NPNServerConnection does not close the EndPoint if it reads -1.
 + 419350 Do not borrow space from passed arrays
 + 419655 AnnotationParser throws NullPointerException when scanning files from
   jar:file urls
 + 419687 HttpClient's query parameters must be case sensitive.
 + 419799 Async timeout dispatches to error page
 + 419814 Annotation properties maxMessageSize and inputBufferSize don't work
 + 419846 JDBCSessionManager doesn't determine dirty state correctly
 + 419899 Do not wrap SSL Exception as EoFException
 + 419901 Client always adds extra user-agent header.
 + 419904 Data corruption on proxy PUT requests.
 + 419914 QueuedThreadPool uses nanoTime
 + 419937 Request isSecure cleared on recycle
 + 419950 Provide constructor for StringContentProvider that takes Charset.
 + 419964 InputStreamContentProvider does not close provided InputStream.
 + 420012 Improve ProxyServlet.Transparent configuration in case prefix="/".
 + 420033 AsyncContext.onTimeout exceptions passed to onError
 + 420034 Removed threads/timers from Date caching
 + 420039 BufferingResponseListener continues processing after aborting
   request.
 + 420048 DefaultServlet alias checks configured resourceBase
 + 420103 Split out jmx-remote module from existing jmx module
 + 420142 reimplemented graceful shutdown
 + 420362 Response/request listeners called too many times.
 + 420364 Bad synchronization in HttpConversation.
 + 420374 Call super.close() in a finally block
 + 420530 AbstractLoginModule never fails a login
 + 420687 XML errors in jetty-plus/src/test/resources/web-fragment-*.xml
 + 420776 complete error pages after startAsync

jetty-9.1.0.RC0 - 30 September 2013
 + 412469 make module for jetty-jaspi
 + 416453 Add comments to embedded SplitFileServer example
 + 416577 enhanced shutdown handler to send shutdown at startup
 + 416674 run all jetty-ant tests on random ports
 + 416940 avoid download of spring-beans.dtd
 + 417152 WebSocket / Do all setup in websocket specific
   ServletContainerInitializer
 + 417239 re-implemented Request.getContentRead()
 + 417284 Precompiled regex in HttpField
 + 417289 SPDY replace use of direct buffers with indirect buffers or make it
   configurable
 + 417340 Upgrade JDT compiler to one that supports source/target of Java 1.7
 + 417382 Upgrade to asm 4.1 and refactor annotation parsing
 + 417475 Do not null context Trie during dynamic deploy
 + 417490 WebSocket / @PathParam annotated parameters are null when the servlet
   mapping uses a wildcard
 + 417561 Refactor annotation related code: change log messages
 + 417574 Setting options with _JAVA_OPTIONS breaks run-forked with
   <waitForChild>true</waitForChild>
 + 417831 Remove jetty-logging.properties from distro/resources
 + 417938 Startup / Sort properties presented in --list-config alphabetically
 + 418014 Handle NTFS canonical exceptions during alias check
 + 418068 WebSocketClient has lazy or injected Executor
 + 418212 org.eclipse.jetty.spdy.server.http.SSLExternalServerTest hangs
 + 418227 Null cookie value test

jetty-9.0.6.v20130930 - 30 September 2013
 + 411069 better set compiler defaults to 1.7, including webdefault.xml for jsp
 + 411934 War overlay configuration assumes src/main/webapp exists
 + 413484 setAttribute in nosql session management better handles _dirty status
 + 413684 deprecated unsafe alias checkers
 + 413737 hide stacktrace in ReferrerPushStrategyTest
 + 414431 Avoid debug NPE race
 + 414898 Only upgrade v0 to v1 cookies on dquote , ; backslash space and tab
   in the value
 + 415192 <jsp-file> maps to JspPropertyGroupServlet instead of JspServlet
 + 415194 Deployer gives management of context to context collection
 + 415302 
 + 415330 Avoid multiple callbacks at EOF
 + 415401 Add initalizeDefaults call to SpringConfigurationProcessor
 + 415548 migrate ProxyHTTPToSPDYTest to use HttpClient to avoid intermittent
   NPE part 2
 + 415605 fix status code logging for async requests
 + 415999 Fix some of FindBugs warnings
 + 416015 Handle null Accept-Language and other headers
 + 416096 DefaultServlet leaves open file descriptors with file sizes greater
   than response buffer
 + 416102 Clean up of async sendContent process
 + 416103 Added AllowSymLinkAliasChecker.java
 + 416251 ProxyHTTPToSPDYConnection now sends a 502 to the client if it
   receives a rst frame from the upstream spdy server
 + 416266 HttpServletResponse.encodeURL() encodes on first request when only
   SessionTrackingMode.COOKIE is used
 + 416314 jetty async client wrong behaviour for HEAD Method + Redirect.
 + 416321 handle failure during blocked committing write
 + 416453 Add comments to embedded SplitFileServer example
 + 416477 Improved consumeAll error handling
 + 416568 Simplified servlet exception logging
 + 416577 enhanced shutdown handler to send shutdown at startup
 + 416585 WebInfConfiguration examines webapp classloader first instead of its
   parent when looking for container jars
 + 416597 Allow classes and jars on the webappcontext extraclasspath to be
   scanned for annotations
 + 416663 Content-length set by resourcehandler
 + 416674 run all jetty-ant tests on random ports
 + 416679 Change warning to debug if no transaction manager present
 + 416787 StringIndexOutOfBounds with a pathMap of ""
 + 416940 avoid download of spring-beans.dtd
 + 416990 JMX names statically unique
 + 417110 Demo / html body end tag missing in authfail.html
 + 417225 added Container.addEventListener method
 + 417260 Protected targets matched as true URI path segments
 + 417289 SPDY replace use of direct buffers with indirect buffers or make it
   configurable
 + 417475 Do not null context Trie during dynamic deploy
 + 417574 Setting options with _JAVA_OPTIONS breaks run-forked with
   <waitForChild>true</waitForChild>
 + 417831 Remove jetty-logging.properties from distro/resources
 + 418014 Handle NTFS canonical exceptions during alias check
 + 418212 org.eclipse.jetty.spdy.server.http.SSLExternalServerTest hangs
 + 418227 Null cookie value test

jetty-9.1.0.M0 - 16 September 2013
 + 393473 Add support for JSR-356 (javax.websocket) draft
 + 395444 Websockets not working with Chrome (deflate problem)
 + 396562 Add an implementation of RequestLog that supports Slf4j
 + 398467 Servlet 3.1 Non Blocking IO
 + 402984 WebSocket Upgrade must honor case insensitive header fields in
   upgrade request
 + 403280 Update to javax.el 2.2.4
 + 403380 Introduce WebSocketTimeoutException to differentiate between EOF on
   write and Timeout
 + 403510 HttpSession maxInactiveInterval is not serialized in HashSession
 + 403591 do not use the ConcurrentArrayBlockingQueue for thread pool, selector
   and async request log
 + 403817 Use of WebSocket Session.close() results in invalid status code
 + 405188 HTTP 1.0 with GET returns internal IP address.
 + 405422 Implement servlet3.1 spec sections 4.4.3 and 8.1.4 for new
   HttpSessionIdListener class
 + 405432 Check implementation of section 13.4.1 @ServletSecurity for
   @HttpConstraint and HttpMethodConstraint clarifications
 + 405435 Implement servlet3.1 section 13.6.3 for 303 redirects for Form auth
 + 405437 Implement section 13.8.4 Uncovered HTTP methods
 + 405525 Throw IllegalArgumentException if filter or servlet name is null or
   empty string in ServletContext.addXXX() methods
 + 405526 Deployment must fail if more than 1 servlet maps to same url pattern
 + 405531 Implement Part.getSubmittedFileName()
 + 405533 Implement special role ** for security constraints
 + 405535 Implement Request.isUserInRole(role) check security-role-refs
   defaulting to security-role if no matching ref
 + 405944 Check annotation and resource injection is supported for
   AsyncListener
 + 406759 supressed stacktrace in ReferrerPushStrategyTest
 + 407708 HttpUpgradeHandler must support injection
 + 408782 Transparent Proxy - rewrite URL is ignoring query strings.
 + 408904 Enhance CommandlineBuilder to not escape strings inside single quotes
 + 409403 fix IllegalStateException when SPDY is used and the response is
   written through BufferUtil.writeTo byte by byte
 + 409796 fix and cleanup ReferrerPushStrategy. There's more work to do here,
   so it remains @Ignore for now
 + 409953 return buffer.slice() instead of buffer.asReadOnlyBuffer() in
   ResourceCache to avoid using inefficent path in BufferUtil.writeTo
 + 410083 Jetty clients submits incomplete URL to proxy.
 + 410098 inject accept-encoding header for all http requests through SPDY as
   SPDY clients MUST support spdy. Also remove two new tests that have been to
   implementation agnostic and not needed anymore due to recent code changes
 + 410246 HttpClient with proxy does not tunnel HTTPS requests.
 + 410341 suppress stacktraces that happen during test setup shutdown after
   successful test run
 + 410800 Make RewritePatternRule queryString aware
 + 411069 better set compiler defaults to 1.7, including webdefault.xml for jsp
 + 411934 War overlay configuration assumes src/main/webapp exists
 + 412205 SSL handshake failure leads to unresponsive UpgradeConnection
 + 412418 HttpTransportOverSPDY fix race condition while sending push streams
   that could cause push data not to be sent. Fixes intermittent test issues in
   ReferrerPushStrategyTest
 + 412729 SPDYClient needs a Promise-based connect() method.
 + 412829 Allow any mappings from web-default.xml to be overridden by web.xml
 + 412830 Error Page match ServletException then root cause
 + 412840 remove Future in SPDYClient.connect() and return Session instead in
   blocking version
 + 412934 Ignore any re-definition of an init-param within a descriptor
 + 412935 setLocale is not an explicit set of character encoding
 + 412940 minor threadsafe fixes
 + 413018 ServletContext.addListener() should throw IllegalArgumentException if
   arg is not correct type of listener
 + 413020 Second call to HttpSession.invalidate() should throw exception
 + 413019 HttpSession.getCreateTime() should throw exception after session is
   invalidated
 + 413291 Avoid SPDY double dispatch
 + 413387 onResponseHeaders is not called multiple times when multiple
   redirects occur.
 + 413484 setAttribute in nosql session management better handles _dirty status
 + 413531 Introduce pluggable transports for HttpClient.
 + 413684 deprecated unsafe alias checkers
 + 413737 hide stacktrace in ReferrerPushStrategyTest
 + 413901 isAsyncStarted remains true while original request is dispatched
 + 414167 WebSocket handshake upgrade from FireFox fails due to keep-alive
 + 414431 Avoid debug NPE race
 + 414635 Modular start.d and jetty.base property
 + 414640 HTTP header value encoding
 + 414725 Annotation Scanning should exclude webapp basedir from path
   validation checks
 + 414731 Request.getCookies() should return null if there are no cookies
 + 414740 Removed the parent peeking Loader
 + 414891 Errors thrown by ReadListener and WriteListener not handled
   correctly.
 + 414898 Only upgrade v0 to v1 cookies on dquote , ; backslash space and tab
   in the value
 + 414913 WebSocket / Performance - reduce ByteBuffer allocation/copying during
   generation/writing
 + 414923 CompactPathRule needs to also compact the uri
 + 415047 Create URIs lazily in HttpClient.
 + 415062 SelectorManager wakeup optimisation.
 + 415131 Avoid autoboxing on debug
 + 415192 <jsp-file> maps to JspPropertyGroupServlet instead of JspServlet
 + 415194 Deployer gives management of context to context collection
 + 415302 
 + 415314 Jetty should not commit response on output if <
   Response.setBufferSize() bytes are written
 + 415330 Avoid multiple callbacks at EOF
 + 415401 WebAppProvider: override XmlConfiguration.initializeDefaults
 + 415548 migrate ProxyHTTPToSPDYTest to use HttpClient to avoid intermittent
   NPE part 2
 + 415605 fix status code logging for async requests
 + 415641 Remove remaining calls to deprecated HttpTranspoert.send
 + 415656 SPDY - add IdleTimeout per Stream functionality
 + 415744 Reduce Future usage in websocket
 + 415745 Include followed by forward using a PrintWriter incurs unnecessary
   delay
 + 415780 fix StreamAlreadyCommittedException in spdy build
 + 415825 fix stop support in modular start setup
 + 415826 modules initialised with --add-to-start and --add-to-startd
 + 415827 jetty-start / update --help text for new command line options
 + 415830 jetty-start / add more TestUseCases for home + base + modules
   configurations
 + 415831 rename ini keyword from MODULES= to --module=
 + 415832 jetty-start / fix ClassNotFound exception when starting from empty
   base directory
 + 415839 jetty-start / warning about need for --exec given when not needed by
   default configuration
 + 415899 jetty-start / add --lib=<cp> capability from Jetty 7/8
 + 415913 support bootlib and download in modules
 + 415999 Fix some of FindBugs warnings
 + 416015 Handle null Accept-Language and other headers
 + 416026 improve error handlig in SPDY parsers
 + 416096 DefaultServlet leaves open file descriptors with file sizes greater
   than response buffer
 + 416102 Clean up of async sendContent process
 + 416103 Added AllowSymLinkAliasChecker.java
 + 416143 mod file format uses [type]
 + 416242 respect persistence headers in ProxyHTTPSPDYConnection
 + 416251 ProxyHTTPToSPDYConnection now sends a 502 to the client if it
   receives a rst frame from the upstream spdy server
 + 416266 HttpServletResponse.encodeURL() encodes on first request when only
   SessionTrackingMode.COOKIE is used
 + 416314 jetty async client wrong behaviour for HEAD Method + Redirect.
 + 416321 handle failure during blocked committing write
 + 416477 Improved consumeAll error handling
 + 416568 Simplified servlet exception logging
 + 416585 WebInfConfiguration examines webapp classloader first instead of its
   parent when looking for container jars
 + 416597 Allow classes and jars on the webappcontext extraclasspath to be
   scanned for annotations
 + 416663 Content-length set by resourcehandler
 + 416674 run all jetty-ant tests on random ports
 + 416679 Change warning to debug if no transaction manager present
 + 416680 remove uncovered constraint warning
 + 416681 Remove unnecessary security constraints in test-jetty-webapp
 + 416763 WebSocket / Jsr Session.getPathParameters() is empty
 + 416764 WebSocket / Jsr Session.getRequestURI() is missing scheme + host +
   port + query parameters
 + 416787 StringIndexOutOfBounds with a pathMap of ""
 + 416812 Don't start WebSocketClient for every context
 + 416990 JMX names statically unique
 + 417022 Request attribute access to Server,HttpChannel & HttpConnection
 + 417023 Add Default404Servlet if no default servlet set
 + 417108 demo-base uses HTTPS
 + 417109 Demo / Jaas test fails to find etc/login.conf
 + 417110 Demo / html body end tag missing in authfail.html
 + 417111 Demo / login with admin/admin fails
 + 417133 WebSocket / deflate-frame should accumulate decompress byte buffers
   properly
 + 417134 WebSocket / Jsr
   ServerEndpointConfig.Configurator.getNegotiatedExtensions() is never used
 + 417225 added Container.addEventListener method
 + 417260 Protected targets matched as true URI path segments

jetty-8.1.13.v20130916 - 16 September 2013
 + 412629 PropertyFileLoginModule doesn't cache user configuration file even
   for refreshInterval=0
 + 413484 setAttribute in nosql session management better handles _dirty status
 + 413684 deprecated unsafe alias checkers
 + 414235 RequestLogHandler configured on a context fails to handle forwarded
   requests
 + 414393 StringIndexOutofBoundsException with > 8k multipart content without
   CR or LF
 + 414431 Avoid debug NPE race
 + 414507 Ensure AnnotationParser ignores parent dir hierarchy when checking
   for hidden dirnames
 + 414652 WebSocket's sendMessage() may hang on congested connections.
 + 415192 <jsp-file> maps to JspPropertyGroupServlet instead of JspServlet
 + 415401 Add XmlConfiguration.initializeDefaults that allows to set default
   values for any XmlConfiguration that may be overridden in the config file
 + 416266 HttpServletResponse.encodeURL() encodes on first request when only
   SessionTrackingMode.COOKIE is used
 + 416585 WebInfConfiguration examines webapp classloader first instead of its
   parent when looking for container jars
 + 416787 StringIndexOutOfBounds with a pathMap of ""
 + 416990 JMX names statically unique

jetty-7.6.13.v20130916 - 16 September 2013
 + 412629 PropertyFileLoginModule doesn't cache user configuration file even
   for refreshInterval=0
 + 413484 setAttribute in nosql session management better handles _dirty status
 + 413684 deprecated unsafe alias checkers
 + 414235 RequestLogHandler configured on a context fails to handle forwarded
   requests
 + 414393 StringIndexOutofBoundsException with > 8k multipart content without
   CR or LF
 + 414431 Avoid debug NPE race
 + 414507 Ensure AnnotationParser ignores parent dir hierarchy when checking
   for hidden dirnames
 + 414652 WebSocket's sendMessage() may hang on congested connections.
 + 415192 <jsp-file> maps to JspPropertyGroupServlet instead of JspServlet
 + 415401 Add XmlConfiguration.initializeDefaults that allows to set default
   values for any XmlConfiguration that may be overridden in the config file
 + 416585 WebInfConfiguration examines webapp classloader first instead of its
   parent when looking for container jars
 + 416990 JMX names statically unique

jetty-9.0.5.v20130815 - 15 August 2013
 + 414898 Only upgrade v0 to v1 cookies on dquote , ; backslash space and tab
   in the value
 + 404468 Ported jetty-http-spi to Jetty-9
 + 405424 add X-Powered-By and Server header to SPDY
 + 405535 implement Request.isUserInRole(role) check security-role-refs
   defaulting to security-role if no matching ref
 + 408235 SPDYtoHTTP proxy fix: remove hop headers from upstream server
 + 409028 Jetty HttpClient does not work with proxy CONNECT method.
 + 409282 fix intermittently failing MaxConcurrentStreamTest
 + 409845 add test that makes sure that DataFrameGenerator correctly prepends
   the header information
 + 410498 ignore type of exception in
   GoAwayTest.testDataNotProcessedAfterGoAway
 + 410668 HTTP client should support the PATCH method.
 + 410800 Make RewritePatternRule queryString aware
 + 410805 StandardSession: remove all frameBytes for a given stream from queue
   if the stream is reset
 + 411216 RequestLogHandler handles async completion
 + 411458 MultiPartFilter getParameterMap doesn't preserve multivalued
   parameters 411459  MultiPartFilter.Wrapper getParameter should use charset
   encoding of part
 + 411538 Use Replacement character for bad parameter % encodings
 + 411545 SslConnection.DecryptedEndpoint.fill() sometimes misses a few network
   bytes
 + 411755 MultiPartInputStreamParser fails on base64 encoded content
 + 411844 ArrayIndexOutOfBoundsException on wild URL.
 + 411909 GzipFilter flushbuffer() results in erroneous finish() call
 + 412234 fix bug where NetworkTrafficSelectChannelEndpoint counted bytes wrong
   on incomplete writes
 + 412318 HttpChannel fix multiple calls to _transport.completed() if handle()
   is called multiple times while the channel is COMPLETED
 + 412418 HttpTransportOverSPDY fix race condition while sending push streams
   that could cause push data not to be sent. Fixes intermittent test issues in
   ReferrerPushStrategyTest
 + 412442 Avoid connection timeout after FIN-FIN close
 + 412466 Improved search for unset JETTY_HOME
 + 412608 EOF Chunk not sent on inputstream static content
 + 412629 PropertyFileLoginModule doesn't cache user configuration file even
   for refreshInterval=0
 + 412637 ShutdownMonitorThread already started
 + 412712 HttpClient does not send the terminal chunk after partial writes.
 + 412713 add dumpOnStart configuration to jetty-maven-plugin
 + 412750 HttpClient close expired connections fix
 + 412814 HttpClient calling CompleteListener.onComplete() twice.
 + 412846 jetty Http Client Connection through Proxy is failing with Timeout.
 + 412938 Request.setCharacterEncoding now throws UnsupportedEncodingException
   instead of UnsupportedCharsetException
 + 413034 Multiple webapps redeploy returns NamingException with AppDynamics
   javaagent
 + 413066 accept lower case method: head
 + 413108 HttpClient hardcodes dispatchIO=false when using SSL.
 + 413113 Inconsistent Request.getURI() when adding parameters via
   Request.param().
 + 413154 ContextHandlerCollection defers virtual host handling to
   ContextHandler
 + 413155 HttpTransportOverSPDY remove constructor argument for version and get
   version from stream.getSession instead
 + 413371 Default JSON.Converters for List and Set.
 + 413372 JSON Enum uses name rather than toString()
 + 413393 better logging of bad URLs in Resources
 + 413486 SessionCookieConfig setters should throw IllegalStateException if
   called after context started
 + 413568 Made AJP worker name generic
 + 413684 Trailing slash shows JSP source
 + 413901 isAsyncStarted remains true while original request is dispatched
 + 414085 Add jetty-continuations to plugin dependencies
 + 414101 Do not escape special characters in cookies
 + 414235 RequestLogHandler configured on a context fails to handle forwarded
   requests
 + 414393 StringIndexOutofBoundsException with > 8k multipart content without
   CR or LF
 + 414449 Added HttpParser strict mode for case sensitivity
 + 414507 Ensure AnnotationParser ignores parent dir hierarchy when checking
   for hidden dirnames
 + 414625 final static version fields
 + 414640 HTTP header value encoding
 + 414652 WebSocket's sendMessage() may hang on congested connections.
 + 414727 Ensure asynchronously flushed resources are closed
 + 414763 Added org.eclipse.jetty.util.log.stderr.ESCAPE option
 + 414833 HttpSessionListener.destroy must be invoked in reverse order
 + 414840 Request.login() throws NPE if username is null
 + 414951 QueuedThreadPool fix constructor that missed to pass the idleTimeout
 + 414972 HttpClient may read bytes with pre-tunnelled connection.

jetty-9.0.4.v20130625 - 25 June 2013
 + 396706 CGI support parameters
 + 397051 Make JDBCLoginService data members protected to facilitate
   subclassing
 + 397193 MongoSessionManager refresh updates last access time
 + 398467 Servlet 3.1 Non Blocking IO
 + 400503 WebSocket - squelch legitimate Exceptions during testing to avoid
   false positives
 + 401027 javadoc JMX annotations
 + 404508 enable overlay deployer
 + 405188 HTTP 1.0 with GET returns internal IP address.
 + 405313 Websocket client SSL hostname verification is broken, always defaults
   to raw IP as String
 + 406759 supressed stacktrace in ReferrerPushStrategyTest
 + 406923 Accept CRLF or LF but not CR as line termination
 + 407246 Test harness checked results in callbacks ignored.
 + 407325 Test Failure:
   org.eclipse.jetty.servlets.EventSourceServletTest.testEncoding
 + 407326 Test Failure:
   org.eclipse.jetty.client.HttpClientStreamTest.testInputStreamResponseListenerFailedBeforeResponse[0].
 + 407342 ReloadedSessionMissingClassTest uses class compiled with jdk7
 + 407386 Cookies not copied in ServletWebSocketRequest
 + 407469 Method parameters for @OnWebSocketError should support Throwable
 + 407470 Javadoc for @OnWebSocketFrame incorrectly references WebSocketFrame
   object
 + 407491 Better handle empty Accept-Language
 + 407614 added excludedMimeTypes to gzipFilter
 + 407812 jetty-maven-plugin can not handle whitespaces in equivalent of
   WEB-INF/classes paths
 + 407931 Add toggle for failing on servlet availability
 + 407976 JDBCSessionIdManager potentially leaves server in bad state after
   startup
 + 408077 HashSessionManager leaves file handles open after being stopped
 + 408117 isAsyncStarted is false on redispatch
 + 408118 NullPointerException when parsing request cookies
 + 408167 JDBCSessionManager don't mark session as dirty if same attribute
   value set
 + 408281 Inconsistent start/stop handling in ContainerLifeCycle
 + 408446 Multipart parsing issue with boundry and charset in ContentType
   header
 + 408529 Etags set in 304 response
 + 408600 set correct jetty.url in all pom files
 + 408642 setContentType from addHeader
 + 408662 In pax-web servlet services requests even if init() has not finished
   running
 + 408709 refactor test-webapp's chat application. Now there's only a single
   request for user login and initial chat message.
 + 408720 NPE in AsyncContext.getRequest()
 + 408723 Jetty Maven plugin reload ignores web.xml listeners
 + 408768 JSTL jars not scanned by jetty-ant
 + 408771 Problem with ShutdownMonitor for jetty-ant
 + 408782 Transparent Proxy - rewrite URL is ignoring query strings.
 + 408806 getParameter returns null on Multipart request if called before
   request.getPart()/getParts()
 + 408904 Enhance CommandlineBuilder to not escape strings inside single quotes
 + 408909 GzipFilter setting of headers when reset and/or not compressed
 + 408910 META-INF/jetty-webapp-context.xml file should be able to refer to
   bundle-relative locations
 + 408923 Need to be able to configure the ThreadPool for the default jetty
   server in osgi
 + 408945 XML Args ignored without DTD
 + 409012 added reference to example rewrite rules
 + 409133 Empty <welcome-file> causes StackOverflowError
 + 409228 Set jetty.home property so config files work even if deployed inside
   a bundle
 + 409403 fix IllegalStateException when SPDY is used and the response is
   written through BufferUtil.writeTo byte by byte
 + 409436 NPE on context restart using dynamic servlet registration
 + 409441 jetty.xml threadpool arg injection
 + 409449 Ensure servlets, filters and listeners added via dynamic
   registration, annotations or descriptors are cleaned on context restarts
 + 409545 Change HttpChannel contract
 + 409556 Resource files not closed
 + 409598 spdy: Fix NPE when a broken client tried to create duplicate stream
   IDs
 + 409684 Ids and properties not set for execution of jetty xml config files
   with mvn plugin
 + 409796 fix intermittent test issue in
   ReferrerPushStrategy.testResourceOrder. Happened when the client got closed
   before the server finished sending all data frames. Client waits now until
   all data is received.
 + 409801 Jetty should allow webdefault to be specified using a relative
   location when running in OSGi
 + 409842 Suspended request completed by a request thread does not set read
   interest.
 + 409953 return buffer.slice() instead of buffer.asReadOnlyBuffer() in
   ResourceCache to avoid using inefficent path in BufferUtil.writeTo
 + 409978 Websocket shouldn't create HttpSession if not present
 + 410083 Jetty clients submits incomplete URL to proxy.
 + 410098 inject accept-encoding header for all http requests through SPDY as
   SPDY clients MUST support spdy. Also remove two new tests that have been to
   implementation agnostic and not needed anymore due to recent code changes
 + 410175 WebSocketSession#isSecure() doesn't return true for SSL session on
   the server side
 + 410246 HttpClient with proxy does not tunnel HTTPS requests.
 + 410337 throw EofException instead of EOFException in HttpOutput.write() if
   HttpOutpyt is closed
 + 410341 suppress stacktraces that happen during test setup shutdown after
   successful test run
 + 410370 WebSocketCreator.createWebSocket() should use servlet specific
   parameters
 + 410372 Make SSL client certificate information available to server
   websockets
 + 410386 WebSocket Session.getUpgradeRequest().getRequestURI() returns bad URI
   on server side
 + 410405 Avoid NPE for requestDispatcher(../)
 + 410469 UpgradeRequest is sent twice when using SSL, one fails warning about
   WritePendingException
 + 410522 jetty start broken for command line options
 + 410537 Exceptions during @OnWebSocketConnect not reported to
   @OnWebSocketError
 + 410559 Removed FillInterest race
 + 410630 MongoSessionManager conflicting session update op
 + 410693 ServletContextHandler.setHandler does not relink handlers - check for
   null
 + 410750 NoSQLSessions: implement session context data persistence across
   server restarts
 + 410799 errors while creating push streams in HttpTransportOverSPDY are now
   logged to debug instead of warn
 + 410893 async support defaults to false for spec created servlets and filters
 + 410911 Continuation isExpired handling.
 + 410995 Avoid reverse DNS lookups when creating SSLEngines.
 + 411061 fix cookie handling in spdy. If two different HTTP headers with the
   same name are set, they should be translated to a single multiheader value
   according to:
   http://www.chromium.org/spdy/spdy-protocol/spdy-protocol-draft3#TOC-2.6.10-Name-Value-Header-Block.
   That applies for Set-Cookie headers for example. Before this changed
   duplicate header names have overwritten the previous one
 + 411135 HttpClient may send proxied https requests to the proxy instead of
   the target server.
 + 411340 add comment why executeOnFillable defaults to true
 + 411545 SslConnection.DecryptedEndpoint.fill() sometimes misses a few network
   bytes

jetty-9.0.3.v20130506 - 06 May 2013
 + 404010 fix cast exception in mongodb session manager
 + 404911 WebSocketCloseTest fails spuriously
 + 405281 allow filemappedbuffers to not be used
 + 405327 Modular Start.ini
 + 405530 Wrap AsyncContext to throw ISE after complete
 + 405537 NPE in rendering JSP using SPDY and wrapped ServletRequest
 + 405570 spdy push: resource ordering and sequential push.
 + 405631 Plugin gives error when its started twice
 + 405925 Redeploy with jetty-maven-plugin fails
 + 406015 Query parameters and POST queries. Fixed proxy case where the path is
   rewritten to be absolute.
 + 406202 re-enabled connector statistics
 + 406214 fix constructor for PushSynInfo ignores timeout, remove timeout for
   creating push streams in HttpTransportOverSPDY
 + 406272 Security constraints with multiple http-method-omissions can be
   incorrectly applied
 + 406390 406617 removed tiny race from handling of suspend and complete
 + 406437 Digest Auth supports out of order nc
 + 406449 Session's disconnect not detected
 + 406617 Spin in Request.recycle
 + 406618 Jetty startup in OSGi Equinox fails when using option
   jetty.home.bundle=org.eclipse.jetty.osgi.boot
 + 406753 jetty-runner contains invalid signature files
 + 406768 Improved handling of static content resources
 + 406861 IPv6 redirects fail.
 + 406923 Accept CRLF or LF but not CR as line termination
 + 406962 Improve attribute names in Request
 + 407075 Do not dispatch from complete
 + 407135 Unauthorized response causes retry loop.
 + 407136 @PreDestroy called after Servlet.destroy()
 + 407173 java.lang.IllegalStateException: null when using JDBCSessionManager
 + 407214 Reduce build logging of OSGi modules

jetty-9.0.2.v20130417 - 17 April 2013
 + 364921 FIN WAIT sockets
 + 402885 reuse Deflaters in GzipFilter
 + 403591 do not use the ConcurrentArrayBlockingQueue for thread pool, selector
   and async request log
 + 404511 fixed poor methods in ArrayTernaryTrie
 + 405119 Tidy up comments and code formatting for osgi
 + 405352 Servlet init-param always overridden by WebServlet annotation
 + 405364 spdy imeplement MAX_CONCURRENT_STREAMS
 + 405449 spdy improve handling of duplicate stream Ids
 + 405540 ServletContextListeners call in reverse in doStop
 + 405551 InputStreamResponseListener.await returns null when request fails.
 + 405679 example other server for documentation

jetty-9.0.1.v20130408 - 08 April 2013
 + 384552 add comment to jetty-https.xml describing keymanager password
 + 385488 non existing resources in collection are just warnings
 + 392129 fixed merged of handling of timeouts after startAsync
 + 393971 Improve setParentLoaderPriorty javadoc
 + 393972 Improve WebAppContext classloading javadoc
 + 395620 do not managed inherited life cycle listeners
 + 396562 Add an implementation of RequestLog that supports Slf4j
 + 399967 Destroyables destroyed on undeploy and shutdown hook
 + 400142 ConcurrentModificationException in JDBC SessionManger
 + 400144 When loading a session fails the JDBCSessionManger produces duplicate
   session IDs
 + 400689 Add support for Proxy authentication.
 + 401150 close input stream used from cached resource
 + 401806 spdy push properly pass through request and response headers for
   pushed resources
 + 402397 InputStreamResponseListener early close inputStream cause hold lock.
 + 402485 reseed secure random
 + 402626 Do not required endpoint host checking by default in server and
   configure in client
 + 402666 Improve handling of TLS exceptions due to raw socket close.
 + 402694 setuid as LifeCycle listener
 + 402706 HttpSession.setMaxInactiveInterval(int) does not change JDBCSession
   expiry
 + 402726 WebAppContext references old WebSocket packages in system and server
   classes
 + 402735 jetty.sh to support status which is == check
 + 402757 WebSocket client module can't be used with WebSocket server module in
   the same WAR.
 + 402833 Test harness for global error page and hide exception message from
   reason string
 + 402844 STOP.PORT & STOP.KEY behaviour has changed
 + 402982 Premature initialization of Servlets
 + 402984 WebSocket Upgrade must honor case insensitive header fields in
   upgrade request
 + 403122 Session replication fails with ClassNotFoundException when session
   attribute is Java dynamic proxy
 + 403280 Update to javax.el 2.2.4
 + 403281 jetty.sh waits for started or failure before returning
 + 403360 Named connectors
 + 403370 move frameBytes.fail() call in StandardSession.flush() outside the
   synchronized block to avoid deadlock
 + 403373 WebSocket change timeout log level from warn -> info
 + 403380 Introduce WebSocketTimeoutException to differentiate between EOF on
   write and Timeout
 + 403451 Review synchronization in SslConnection.
 + 403510 HttpSession maxInactiveInterval is not serialized in HashSession
 + 403513 jetty:run goal cannot be executed twice during the maven build
 + 403570 Asynchronous Request Logging
 + 403591 do not use the ConcurrentArrayBlockingQueue for thread pool, selector
   and async request log
 + 403817 Use of WebSocket Session.close() results in invalid status code
 + 404029 port jetty-monitor to jetty-9 and activate it
 + 404036 JDBCSessionIdManager.doStart() method should not call
   cleanExpiredSessions() because Listeners can't be notified
 + 404067 If cannot connect to db fail startup of JDBCSessionIdManager
 + 404128 Add Vary headers rather than set them
 + 404176 Jetty's AnnotationConfiguration class does not scan non-jar resources
   on the container classpath
 + 404204 Exception from inputstream cause hang or timeout.
 + 404283 org.eclipse.jetty.util.Scanner.scanFile() dies with an NPE if
   listFiles() returns null
 + 404323 Improved parameterization of https and SPDY
 + 404325 data constraint redirection does send default port
 + 404326 set status when Request.setHandled(true) is called
 + 404511 Replaced all StringMap usage with Tries
 + 404517 Close connection if request received after half close
 + 404610 Reintroduce ability to disallow TLS renegotiation.
 + 404757 SPDY can only be built with the latest JDK version.
 + 404789 Support IPv6 addresses in DoSFilter white list.
 + 404881 Allow regexs for SslContextFactory.setIncludeCipherSuites() and
   .setExcludeCipherSuites()
 + 404889 SelectorManager accepts attachments with sockets
 + 404906 servlets with load-on-startup = 0 are not fired up on jetty 9 startup
 + 404958 Fixed Resource.newSystemResource striped / handling
 + 405044 Query parameters lost for non GET or POST.

jetty-9.0.0.v20130308 - 08 March 2013
 + 399070 add updated version of npn-boot jar to start.ini
 + 399799 do not hold lock while calling invalidation listeners
 + 399967 Destroyables destroyed on undeploy and shutdown hook
 + 400312 ServletContextListener.contextInitialized() is not called when added
   in ServletContainerInitializer.onStartup
 + 401495 removed unused getOutputStream
 + 401531 StringIndexOutOfBoundsException for "/*" <url-pattern> of
   <jsp-property-group> fix for multiple mappings to *.jsp
 + 401641 Fixed MBean setter for String[]
 + 401642 Less verbose INFOs
 + 401643 Improved Authentication exception messages and provided quiet servlet
   exception
 + 401644 Dump does not login user already logged in
 + 401651 Abort request if maxRequestsQueuedPerDestination is reached.
 + 401777 InputStreamResponseListener CJK byte (>=128) cause EOF.
 + 401904 fixed getRemoteAddr to return IP instead of hostname
 + 401908 Enhance DosFilter to allow dynamic configuration of attributes.
 + 401966 Ensure OSGI WebApp as Service (WebAppContext) can be deployed only
   through ServiceWebAppProvider
 + 402008 Websocket blocking write hangs when remote client dies (or is killed)
   without going thru Close handshake
 + 402048 org.eclipse.jetty.server.ShutdownMonitor doesn't stop after the jetty
   server is stopped
 + 402075 Massive old gen growth when hit by lots of non persistent
   connections.
 + 402090 httpsender PendingState cause uncertain data send to server.
 + 402106 fixed URI resize in HttpParser
 + 402148 Update Javadoc for WebSocketServlet for new API
 + 402154 WebSocket / Session.setIdleTimeout(ms) should support in-place idle
   timeout changes
 + 402185 updated javascript mime-type
 + 402277 spdy proxy: fix race condition in nested push streams initiated by
   upstream server. Fix several other small proxy issues
 + 402316 HttpReceiver and null pointer exception.
 + 402341 Host with default port causes redirects loop.
 + 402726 WebAppContext references old WebSocket packages in system and server
   classes
 + 402757 WebSocket client module can't be used with WebSocket server module in
   the same WAR

jetty-8.1.12.v20130726 - 26 July 2013
 + 396706 CGI support parameters
 + 397193 MongoSessionManager refresh updates last access time
 + 407342 ReloadedSessionMissingClassTest uses class compiled with jdk7
 + 408529 Etags set in 304 response
 + 408600 set correct jetty.url in all pom files
 + 408642 setContentType from addHeader
 + 408662 In pax-web servlet services requests even if init() has not finished
   running
 + 408806 getParameter returns null on Multipart request if called before
   request.getPart()/getParts()
 + 408909 GzipFilter setting of headers when reset and/or not compressed
 + 409028 Jetty HttpClient does not work with proxy CONNECT method.
 + 409133 Empty <welcome-file> causes StackOverflowError
 + 409436 NPE on context restart using dynamic servlet registration
 + 409449 Ensure servlets, filters and listeners added via dynamic
   registration, annotations or descriptors are cleaned on context restarts
 + 409556 FileInputStream not closed in DirectNIOBuffer
 + 410405 Avoid NPE for requestDispatcher(../)
 + 410630 MongoSessionManager conflicting session update op
 + 410750 NoSQLSessions: implement session context data persistence across
   server restarts
 + 410893 async support defaults to false for spec created servlets and filters
 + 411135 HttpClient may send proxied https requests to the proxy instead of
   the target server.
 + 411216 RequestLogHandler handles async completion
 + 411458 MultiPartFilter getParameterMap doesn't preserve multivalued
   parameters 411459  MultiPartFilter.Wrapper getParameter should use charset
   encoding of part
 + 411755 MultiPartInputStreamParser fails on base64 encoded content
 + 411909 GzipFilter flushbuffer() results in erroneous finish() call
 + 412712 HttpClient does not send the terminal chunk after partial writes.
 + 412750 HttpClient close expired connections fix
 + 413371 Default JSON.Converters for List and Set.
 + 413372 JSON Enum uses name rather than toString()
 + 413684 Trailing slash shows JSP source
 + 413812 Make RateTracker serializable

jetty-7.6.12.v20130726 - 26 July 2013
 + 396706 CGI support parameters
 + 397193 MongoSessionManager refresh updates last access time
 + 407342 ReloadedSessionMissingClassTest uses class compiled with jdk7
 + 408529 Etags set in 304 response
 + 408600 set correct jetty.url in all pom files
 + 408642 setContentType from addHeader
 + 408662 In pax-web servlet services requests even if init() has not finished
   running
 + 408909 GzipFilter setting of headers when reset and/or not compressed
 + 409028 Jetty HttpClient does not work with proxy CONNECT method.
 + 409133 Empty <welcome-file> causes StackOverflowError
 + 409556 FileInputStream not closed in DirectNIOBuffer
 + 410630 MongoSessionManager conflicting session update op
 + 410750 NoSQLSessions: implement session context data persistence across
   server restarts
 + 411135 HttpClient may send proxied https requests to the proxy instead of
   the target server.
 + 411216 RequestLogHandler handles async completion
 + 411458 MultiPartFilter getParameterMap doesn't preserve multivalued
   parameters 411459  MultiPartFilter.Wrapper getParameter should use charset
   encoding of part
 + 411755 MultiPartInputStreamParser fails on base64 encoded content
 + 411909 GzipFilter flushbuffer() results in erroneous finish() call
 + 412712 HttpClient does not send the terminal chunk after partial writes.
 + 412750 HttpClient close expired connections fix
 + 413371 Default JSON.Converters for List and Set.
 + 413372 JSON Enum uses name rather than toString()
 + 413684 Trailing slash shows JSP source
 + 413812 Make RateTracker serializable

jetty-8.1.11.v20130520 - 20 May 2013
 + 402844 STOP.PORT & STOP.KEY behaviour has changed
 + 403281 jetty.sh waits for started or failure before returning
 + 403513 jetty:run goal cannot be executed twice during the maven build
 + 403570 Asynchronous Request Logging
 + 404010 fix cast exception in mongodb session manager
 + 404128 Add Vary headers rather than set them
 + 404283 org.eclipse.jetty.util.Scanner.scanFile() dies with an NPE if
   listFiles() returns null
 + 404325 data constraint redirection does send default port
 + 404517 Close connection if request received after half close
 + 404789 Support IPv6 addresses in DoSFilter white list.
 + 404958 Fixed Resource.newSystemResource striped / handling
 + 405281 allow filemappedbuffers to not be used
 + 405537 NPE in rendering JSP using SPDY and wrapped ServletRequest
 + 406437 Digest Auth supports out of order nc
 + 406618 Jetty startup in OSGi Equinox fails when using option
   jetty.home.bundle=org.eclipse.jetty.osgi.boot
 + 406923 CR line termination
 + 407136 @PreDestroy called after Servlet.destroy()
 + 407173 java.lang.IllegalStateException: null when using JDBCSessionManager
 + 407931 Add toggle for failing on servlet availability
 + 407976 JDBCSessionIdManager potentially leaves server in bad state after
   startup
 + 408077 HashSessionManager leaves file handles open after being stopped
 + 408446 Multipart parsing issue with boundry and charset in ContentType
   header

jetty-8.1.10.v20130312 - 12 March 2013
 + 376273 Early EOF because of SSL Protocol Error on
   https://api-3t.paypal.com/nvp.
 + 381521 allow compress methods to be configured
 + 392129 fixed handling of timeouts after startAsync
 + 394064 ensure that JarFile instances are closed on JarFileResource.release()
 + 398649 ServletContextListener.contextDestroyed() is not called on
   ContextHandler unregistration
 + 399703 made encoding error handling consistent
 + 399799 do not hold lock while calling invalidation listeners
 + 399967 Shutdown hook calls destroy
 + 400040 NullPointerException in HttpGenerator.prepareBuffers
 + 400142 ConcurrentModificationException in JDBC SessionManger
 + 400144 When loading a session fails the JDBCSessionManger produces duplicate
   session IDs
 + 400312 ServletContextListener.contextInitialized() is not called when added
   in ServletContainerInitializer.onStartup
 + 400457 Thread context classloader hierarchy not searched when finding
   webapp's java:comp/env
 + 400859 limit max size of writes from cached content
 + 401211 Remove requirement for jetty-websocket.jar in WEB-INF/lib
 + 401317 Make Safari 5.x websocket support minVersion level error more clear
 + 401382 Prevent parseAvailable from parsing next chunk when previous has not
   been consumed. Handle no content-type in chunked request.
 + 401474 Performance problem in org.eclipse.jetty.annotation.AnnotationParser
 + 401485 zip file closed exception
 + 401531 StringIndexOutOfBoundsException for "/*" <url-pattern> of
   <jsp-property-group> fix for multiple mappings to *.jsp
 + 401908 Enhance DosFilter to allow dynamic configuration of attributes.
 + 402048 org.eclipse.jetty.server.ShutdownMonitor doesn't stop after the jetty
   server is stopped
 + 402485 reseed secure random
 + 402735 jetty.sh to support status which is == check
 + 402833 Test harness for global error page and hide exception message from
   reason string

jetty-7.6.11.v20130520 - 20 May 2013
 + 402844 STOP.PORT & STOP.KEY behaviour has changed
 + 403281 jetty.sh waits for started or failure before returning
 + 403513 jetty:run goal cannot be executed twice during the maven build
 + 403570 Asynchronous Request Logging
 + 404010 fix cast exception in mongodb session manager
 + 404128 Add Vary headers rather than set them
 + 404283 org.eclipse.jetty.util.Scanner.scanFile() dies with an NPE if
   listFiles() returns null
 + 404325 data constraint redirection does send default port
 + 404517 Close connection if request received after half close
 + 404789 Support IPv6 addresses in DoSFilter white list.
 + 404958 Fixed Resource.newSystemResource striped / handling
 + 405281 allow filemappedbuffers to not be used
 + 405537 NPE in rendering JSP using SPDY and wrapped ServletRequest
 + 406437 Digest Auth supports out of order nc
 + 406923 CR line termination
 + 407136 @PreDestroy called after Servlet.destroy()
 + 407173 java.lang.IllegalStateException: null when using JDBCSessionManager
 + 407976 JDBCSessionIdManager potentially leaves server in bad state after
   startup
 + 408077 HashSessionManager leaves file handles open after being stopped
 + 408446 Multipart parsing issue with boundry and charset in ContentType
   header

jetty-7.6.10.v20130312 - 12 March 2013
 + 376273 Early EOF because of SSL Protocol Error on
   https://api-3t.paypal.com/nvp.
 + 381521 allow compress methods to be configured
 + 394064 ensure that JarFile instances are closed on JarFileResource.release()
 + 398649 ServletContextListener.contextDestroyed() is not called on
   ContextHandler unregistration
 + 399703 made encoding error handling consistent
 + 399799 do not hold lock while calling invalidation listeners
 + 399967 Shutdown hook calls destroy
 + 400040 NullPointerException in HttpGenerator.prepareBuffers
 + 400142 ConcurrentModificationException in JDBC SessionManger
 + 400144 When loading a session fails the JDBCSessionManger produces duplicate
   session IDs
 + 400457 Thread context classloader hierarchy not searched when finding
   webapp's java:comp/env
 + 400859 limit max size of writes from cached content
 + 401211 Remove requirement for jetty-websocket.jar in WEB-INF/lib
 + 401317 Make Safari 5.x websocket support minVersion level error more clear
 + 401382 Prevent parseAvailable from parsing next chunk when previous has not
   been consumed. Handle no content-type in chunked request.
 + 401474 Performance problem in org.eclipse.jetty.annotation.AnnotationParser
 + 401531 StringIndexOutOfBoundsException for "/*" <url-pattern> of
   <jsp-property-group> fix for multiple mappings to *.jsp
 + 401908 Enhance DosFilter to allow dynamic configuration of attributes.
 + 402048 org.eclipse.jetty.server.ShutdownMonitor doesn't stop after the jetty
   server is stopped
 + 402485 reseed secure random
 + 402735 jetty.sh to support status which is == check
 + 402833 Test harness for global error page and hide exception message from
   reason string

jetty-9.0.0.RC2 - 24 February 2013
 + Fix etc/jetty.xml TimerScheduler typo that is preventing normal startup
 + Fix etc/jetty-https.xml ExcludeCipherSuites typo that prevents SSL startup
 + Fix websocket memory use

jetty-9.0.0.RC1 - 22 February 2013
 + 227244 Remove import of backport-util-concurrent Arrays class
 + 362854 Continuation implementations may deadlock.
 + 376273 Early EOF because of SSL Protocol Error on
   https://api-3t.paypal.com/nvp.
 + 381521 allow compress methods to be configured
 + 388103 Add API for tracking down upload progress.
 + 394064 ensure that JarFile instances are closed on JarFileResource.release()
 + 398649 ServletContextListener.contextDestroyed() is not called on
   ContextHandler unregistration
 + 399463 add start.ini documentation for OPTIONS. Remove reference to
   start_config
 + 399520 Websocket Server Connection needs session idle timeouts
 + 399535 Websocket-client connect should have configurable connect timeout
 + 400014 Http async client DNS performance.
 + 400040 NullPointerException in HttpGenerator.prepareBuffers
 + 400184 SslContextFactory change. Disable hostname verification if trustAll
   is set
 + 400255 Using WebSocket.maxMessageSize results in IllegalArgumentException
 + 400434 Add support for an OutputStream ContentProvider.
 + 400457 Thread context classloader hierarchy not searched when finding
   webapp's java:comp/env
 + 400512 ClientUpgradeRequet.addExtension() should fail if extension is not
   installed
 + 400555 HttpProxyEngine: Add http version header in response
 + 400631 Calling flush() on HttpServletResponse.getOutputStream() after last
   byte of body causes EofException.
 + 400734 NPE for redirects with relative location.
 + 400738 ResourceHandler doesn't support range requests
 + 400848 Redirect fails with non-encoded location URIs.
 + 400849 Conversation hangs if non-first request fails when queued.
 + 400859 limit max size of writes from cached content
 + 400864 Added LowResourcesMonitor
 + 401177 Make org.eclipse.jetty.websocket.api.WebSocketAdapter threadsafe
 + 401183 Handle push streams in new method StreamFrameListener.onPush()
   instead of SessionFrameListener.syn()
 + 401211 Remove requirement for jetty-websocket.jar in WEB-INF/lib
 + 401317 Make Safari 5.x websocket support minVersion level error more clear
 + 401382 Prevent parseAvailable from parsing next chunk when previous has not
   been consumed. Handle no content-type in chunked request.
 + 401414 Hostname verification fails.
 + 401427 WebSocket messages sent from onConnect fail to be read by jetty
   websocket-client
 + 401474 Performance problem in org.eclipse.jetty.annotation.AnnotationParser
 + 401485 zip file closed exception

jetty-9.0.0.RC0 - 01 February 2013
 + 362226 HttpConnection "wait" call causes thread resource exhaustion
 + 370384 jetty-aggregate not used in jetty-distribution
 + 381351 defaults for keymanager and trustmanager come from their factories
   and not hardcoded
 + 381521 Only set Vary header when content could be compressed
 + 381689 Allow jetty-runner to specify listen host along with listen port
 + 382237 support non java JSON classes
 + 385306 added getURI method
 + 391248 fixing localhost checking in statistics servlet
 + 391249 fix for invalid XML node dispatchedTimeMean in statistics servlet
 + 391345 fix missing br tag in statistics servlet
 + 393933 remove deprecated classes/methods and consolidate some static methods
   to SslContextFactory
 + 393968 fix typo in javadoc
 + 394541 remove continuation jar from distro, add as dep to test-jetty-webapp
 + 395232 UpgradeRequest object passed to createWebSocket() has null Session
 + 395444 Disabling Websocket Compress Extensions (not working with Chrome /
   deflate problem)
 + 396428 Test for WebSocket masking on client fragments per RFC 6455 Sec 5.1
 + 396574 add JETTY_HOME as a location for pid to be found
 + 396606 make spdy proxy capable of receiving SPDY and talk HTTP to the
   upstream server
 + 397168 backed of test timing
 + 397769 TimerScheduler does not relinquish cancelled tasks.
 + 398872 SslConnection should not be notified of idle timeouts. First
   solution. Merge branch 'ssl_idle_timeout_ignored'.
 + 399132 check parent dir of session store against file to be removed
 + 399173 UpgradeRequest.getParameterMap() should never return null
 + 399242 Reduce/eliminate false sharing in BlockingArrayQueue.
 + 399319 Request.getURI() may return negative ports.
 + 399324 HttpClient does not handle correctly UnresolvedAddressException.
 + 399343 OnWebSocketConnect should use api.Session parameter instead.
 + 399344 Add missing @OnWebSocketError annotation
 + 399397 websocket-client needs better upgrade failure checks
 + 399421 Add websocket.api.Session.disconnect() for harsh low level connection
   disconnect
 + 399515 Websocket-client connect issues should report to websocket onError
   handlers
 + 399516 Websocket UpgradeException should contain HTTP Request/Response
   information
 + 399566 Running org.eclipse.jetty.server.session.MaxInactiveMigrationTest
   produces stack trace
 + 399568 OSGi tests can't find websocket classes
 + 399576 Server dumpStdErr throws exception if server is stopping
 + 399669 Remove WebSocketConnection in favor of websocket.api.Session
 + 399689 Websocket RFC6455 extension handshake fails if server doesn't have
   extension
 + 399703 made encoding error handling consistent
 + 399721 Change <Ref id= ...> to <Ref refid= ...>

jetty-9.0.0.M5 - 19 January 2013
 + 367638 throw exception for excess form keys
 + 381521 Only set Vary header when content could be compressed
 + 391623 Making --stop with STOP.WAIT perform graceful shutdown
 + 393158 java.lang.IllegalStateException when sending an empty InputStream
 + 393220 remove dead code from ServletHandler and log ServletExceptions in
   warn instead of debug
 + 393733 WebSocketClient interface should support multiple connections
 + 395885 ResourceCache should honor useFileMappedBuffer if set
 + 396253 FilterRegistration wrong order
 + 396459 Log specific message for empty request body for multipart mime
   requests
 + 396500 HttpClient Exchange takes forever to complete when less content sent
   than Content-Length
 + 396886 MultiPartFilter strips bad escaping on filename="..."
 + 397110 Accept %uXXXX encodings in URIs
 + 397111 Tolerate empty or excessive whitespace preceeding MultiParts
 + 397112 Requests with byte-range throws NPE if requested file has no mimetype
   (eg no file extension)
 + 397114 run-forked with waitForChild=false can lock up
 + 397130 maxFormContentSize set in jetty.xml is ignored
 + 397190 improve ValidUrlRule to iterate on codepoints
 + 397321 Wrong condition in default start.config for annotations
 + 397535 Support pluggable alias checking to support symbolic links
 + 397769 TimerScheduler does not relinquish cancelled tasks.
 + 398105 Clean up WebSocketPolicy
 + 398285 ProxyServlet mixes cookies from different clients.
 + 398337 UTF-16 percent encoding in UTF-16 form content
 + 398582 Move lib/jta jar into lib/jndi
 + JETTY-1533 handle URL with no path

jetty-9.0.0.M4 - 21 December 2012
 + 392417 Prevent Cookie parsing interpreting unicode chars
 + 393220 remove dead code from ServletHandler and log ServletExceptions in
   warn instead of debug
 + 393770 Error in ContextHandler.setEventListeners(EventListener[])
 + 394210 spdy api rename stream.syn() to stream.push()
 + 394211 spdy: Expose RemoteServerAddress and LocalServerAddress in
   StandardSession
 + 394294 Start web-bundles started before jetty
 + 394370 Add integration test for client resetting SPDY push SYN's
 + 394514 Preserve URI parameters in sendRedirect
 + 394552 HEAD requests don't work for jetty-client.
 + 394719 remove regex from classpath matching
 + 394829 Session can not be restored after SessionManager.setIdleSavePeriod
   has saved the session
 + 394839 Allow multipart mime with no boundary
 + 394854 optimised promise implementation
 + 394870 Make enablement of remote access to test webapp configurable in
   override-web.xml
 + 395168 fix unavailable attributes when return type has annotation on super
   class
 + 395215 Multipart mime with just LF and no CRLF: add test for legacy filter
 + 395220 New InputStream extension to allow a mix of EOL styles between
   headers and content
 + 395312 log.warn if a SPDY stream gets committed twice
 + 395313 HttpTransportOverSPDY.send() does not rethrow exceptions, but call
   Callback.failed() only
 + 395314 Add missing flush() call after StandardSession.complete() has been
   called. Some test cleanup.
 + 395344 Move JSR-356 (Java WebSocket API) work off to Jetty 9.1.x
 + 395380 add ValidUrlRule to jetty-rewrite
 + 395394 allow logging from boot classloader
 + 395574 port jetty-runner and StatisticsServlet to jetty-9
 + 395605 class cast exception in XMLConfiguration fixed
 + 395649 add jetty-setuid back into jetty 9 and distribution
 + 395794 slightly modified fix for empty file extenstion to mime type mapping.
   Added a default, so it will also work with unknown file extensions
 + 396036 SPDY send controlFrames even if Stream is reset to avoid breaking the
   compression context
 + 396193 spdy remove timeout parameters from api and move them to the Info*
   classes
 + 396459 Log specific message for empty request body for multipart mime
   requests
 + 396460 Make ServerConnector configurable with jetty-maven-plugin
 + 396472 org.eclipse.jetty.websocket needs to be removed from serverclasses as
   it should only be a systemclass
 + 396473 JettyWebXMlConfiguration does not reset serverclasses
 + 396474 add websocket server classes to jetty-maven-plugin classpath
 + 396475 Remove unneeded websocket-server dependency from test-jetty-webapp
 + 396518 Websocket AB Tests should test for which side disconnected and
   closed.wasClean
 + 396687 missing jetty-io dependency in jetty-servlets
 + JETTY-796 jetty ant plugin improvements

jetty-9.0.0.M3 - 20 November 2012
 + 391623 Add option to --stop to wait for target jetty to stop
 + 392237 Port test-integration to jetty-9
 + 392492 expect headers only examined for requests>=HTTP/1.1
 + 392850 ContextLoaderListener not called in 9.0.0.M1 and M2
 + 393075 1xx, 204, 304 responses ignore headers that suggest content
 + 393832 start connectors last
 + 393947 additional tests
 + 394143 add jetty-all aggregate via release profile
 + 394144 add jetty-jaspi

jetty-8.1.9.v20130131 - 31 January 2013
 + 362226 HttpConnection "wait" call causes thread resource exhaustion
 + 367638 throw exception for excess form keys
 + 381521 Only set Vary header when content could be compressed
 + 382237 support non java JSON classes
 + 391248 fixing localhost checking in statistics servlet
 + 391249 fix for invalid XML node dispatchedTimeMean in statistics servlet
 + 391345 fix missing br tag in statistics servlet
 + 391623 Add option to --stop to wait for target jetty to stop
 + 392417 Prevent Cookie parsing interpreting unicode chars
 + 392492 expect headers only examined for requests>=HTTP/1.1
 + 393075 1xx 204 and 304 ignore all headers suggesting content
 + 393158 java.lang.IllegalStateException when sending an empty InputStream
 + 393220 remove dead code from ServletHandler and log ServletExceptions in
   warn instead of debug
 + 393947 additional tests
 + 393968 fix typo in javadoc
 + 394294 A web-bundle started before jetty-osgi should be deployed as a webapp
   when jetty-osgi starts
 + 394514 Preserve URI parameters in sendRedirect
 + 394541 remove continuation jar from distro, add as dep to test-jetty-webapp
 + 394719 remove regex from classpath matching
 + 394811 Make JAASLoginService log login failures to DEBUG instead of WARN.
   Same for some other exceptions.
 + 394829 Session can not be restored after SessionManager.setIdleSavePeriod
   has saved the session
 + 394839 Allow multipart mime with no boundary
 + 394870 Make enablement of remote access to test webapp configurable in
   override-web.xml
 + 395215 Multipart mime with just LF and no CRLF
 + 395380 add ValidUrlRule to jetty-rewrite
 + 395394 allow logging from boot classloader
 + 396253 FilterRegistration wrong order
 + 396459 Log specific message for empty request body for multipart mime
   requests
 + 396500 HttpClient Exchange takes forever to complete when less content sent
   than Content-Length
 + 396574 add JETTY_HOME as a location for pid to be found
 + 396886 MultiPartFilter strips bad escaping on filename="..."
 + 397110 Accept %uXXXX encodings in URIs
 + 397111 Tolerate empty or excessive whitespace preceeding MultiParts
 + 397112 Requests with byte-range throws NPE if requested file has no mimetype
   (eg no file extension)
 + 397130 maxFormContentSize set in jetty.xml is ignored
 + 397190 improve ValidUrlRule to iterate on codepoints
 + 397321 Wrong condition in default start.config for annotations
 + 397535 Support pluggable alias checking to support symbolic links
 + 398337 UTF-16 percent encoding in UTF-16 form content
 + 399132 check parent dir of session store against file to be removed
 + JETTY-1533 handle URL with no path

jetty-7.6.9.v20130131 - 31 January 2013
 + 362226 HttpConnection "wait" call causes thread resource exhaustion
 + 367638 throw exception for excess form keys
 + 381521 Only set Vary header when content could be compressed
 + 382237 support non java JSON classes
 + 391248 fixing localhost checking in statistics servlet
 + 391249 fix for invalid XML node dispatchedTimeMean in statistics servlet
 + 391345 fix missing br tag in statistics servlet
 + 391623 Add option to --stop to wait for target jetty to stop
 + 392417 Prevent Cookie parsing interpreting unicode chars
 + 392492 expect headers only examined for requests>=HTTP/1.1
 + 393075 1xx 204 and 304 ignore all headers suggesting content
 + 393220 remove dead code from ServletHandler and log ServletExceptions in
   warn instead of debug
 + 393947 additional tests
 + 393968 fix typo in javadoc
 + 394514 Preserve URI parameters in sendRedirect
 + 394541 remove continuation jar from distro, add as dep to test-jetty-webapp
 + 394719 remove regex from classpath matching
 + 394811 Make JAASLoginService log login failures to DEBUG instead of WARN.
   Same for some other exceptions.
 + 394829 Session can not be restored after SessionManager.setIdleSavePeriod
   has saved the session
 + 394839 Allow multipart mime with no boundary
 + 395215 Multipart mime with just LF and no CRLF
 + 395380 add ValidUrlRule to jetty-rewrite
 + 395394 allow logging from boot classloader
 + 396459 Log specific message for empty request body for multipart mime
   requests
 + 396500 HttpClient Exchange takes forever to complete when less content sent
   than Content-Length
 + 396574 add JETTY_HOME as a location for pid to be found
 + 396886 MultiPartFilter strips bad escaping on filename="..."
 + 397110 Accept %uXXXX encodings in URIs
 + 397111 Tolerate empty or excessive whitespace preceeding MultiParts
 + 397112 Requests with byte-range throws NPE if requested file has no mimetype
   (eg no file extension)
 + 397130 maxFormContentSize set in jetty.xml is ignored
 + 397190 improve ValidUrlRule to iterate on codepoints
 + 397321 Wrong condition in default start.config for annotations
 + 397535 Support pluggable alias checking to support symbolic links
 + 398337 UTF-16 percent encoding in UTF-16 form content
 + 399132 check parent dir of session store against file to be removed
 + JETTY-1533 handle URL with no path
 + 394215 Scheduled tasks throwing exceptions kill java.util.Timer thread.
 + 394232 add jetty-ant into jetty9
 + 394357 Make JarResource constructors protected
 + 394370 Add unit tests for HttpTransportOverSPDY.send()
 + 394383 add logging of the SSLEngine
 + 394545 Add jetty-jaas dependency to jetty-maven-plugin
 + 394671 Fix setting loglevel on commandline, organize import, fix javadoc
 + JETTY-846 Support maven-war-plugin configuration for jetty-maven-plugin; fix
   NPE

jetty-9.0.0.M2 - 06 November 2012
 + 371170 MongoSessionManager LastAccessTimeTest fails
 + 391877 org.eclipse.jetty.webapp.FragmentDescriptor incorrectly reporting
   duplicate others for after ordering
 + 392237 Split jaas from jetty-plus into jetty-jaas and port the
   test-jaas-webapp from codehaus
 + 392239 Allow no error-code or exception for error-pages
 + 392304 fixed intermittent client SSL failure. Correctly compact in flip2fill
 + 392525 Add option to --stop-wait to specify timeout
 + 392641 JDBC Sessions not scavenged if expired during downtime
 + 392812 MongoSessionIDManager never purges old sessions
 + 392959 Review HttpClient.getConversation(long).
 + 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
 + 393291 Confusing log entry about (non) existing webAppSourceDirectory
 + 393303 use jetty-web.xml to explicitly add the jetty packages that need
   visability.   This commit also sucked in some changes made to help with the
   documentation process (improving deployer configuration management
 + 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-1547 Jetty does not honor web.xml
   web-app/jsp-config/jsp-property-group/default-content-type
 + JETTY-1549 jetty-maven-plugin fails to reload the LoginService properly
 + JETTY-1550 virtual WEB-INF not created if project has overlays

jetty-8.1.8.v20121106 - 06 November 2012
 + 371170 MongoSessionManager LastAccessTimeTest fails
 + 388675 Non utf8 encoded query strings not decoded to parameter map using
   queryEncoding
 + 388706 Avoid unnecessary indirection through Charset.name
 + 389390 AnnotationConfiguration is ignored if the metadata-complete attribute
   is present in an override descriptor regardless of the value
 + 389452 if web-fragment metadata-complete==true still scan its related jar if
   there there is a ServletContainerInitializer, ensure webapp restarts work
 + 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
 + 390108 Servlet 3.0 API for programmatic login doesn't appear to work
 + 390161 Apply DeferredAuthentication fix to jaspi
 + 390163 Implement ServletRegistration.Dynamic.setServletSecurity
 + 390503 http-method-omission element not being processed
 + 390560 The method AnnotationParser.getAnnotationHandlers(String) always
   returns a empty collection.
 + 391080 Multipart temp files can be left on disk from Request.getPart and
   getParts
 + 391082 No exception if multipart input stream incomplete
 + 391188 Files written with Request.getPart().write(filename) should not be
   auto-deleted
 + 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
 + 391877 org.eclipse.jetty.webapp.FragmentDescriptor incorrectly reporting
   duplicate others for after ordering
 + 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-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-9.0.0.M1 - 15 October 2012
 + 369349 directory with spaces --dry-run fix
 + 385049 fix issue with pipelined connections when switching protocols
 + 387896 populate session in SessionAuthentication as a valueBound in addition
   to activation so it is populate when needed
 + 387919 throw EOFException on early eof from client on http requests
 + 387943 Catch CNFE when no jstl jars are installed
 + 387953 jstl does not work with jetty-7 in osgi
 + 388072 GZipFilter incorrectly gzips when Accept-Encoding: gzip; q=0
 + 388073 null session id from cookie causes NPE fixed
 + 388079 AbstractHttpConnection. Flush the buffer before shutting output down
   on error condition
 + 388102 Jetty HttpClient memory leaks when sending larger files
 + 388393 WebAppProvider doesn't work alongside OSGi deployer
 + 388502 handle earlyEOF with 500
 + 388652 Do not flush on handle return if request is suspended
 + 388675 Non utf8 encoded query strings not decoded to parameter map using
   queryEncoding
 + 388706 Avoid unnecessary indirection through Charset.name
 + 388895 Update dependencies for jetty-jndi
 + 389390 AnnotationConfiguration is ignored if the metadata-complete attribute
   is present in an override descriptor regardless of the value
 + 389452 if web-fragment metadata-complete==true still scan its related jar if
   there there is a ServletContainerInitializer, ensure webapp restarts work
 + 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
 + 390108 Servlet 3.0 API for programmatic login doesn't appear to work
 + 390161 Apply DeferredAuthentication fix to jaspi
 + 390163 Implement ServletRegistration.Dynamic.setServletSecurity
 + 390256 Remove Jetty6 Support
 + 390263 Sec-WebSocket-Extensions from Chrome and Safari badly handled
 + 390503 http-method-omission element not being processed
 + 390560 The method AnnotationParser.getAnnotationHandlers(String) always
   returns a empty collection.
 + 391080 Multipart temp files can be left on disk from Request.getPart and
   getParts
 + 391082 No exception if multipart input stream incomplete
 + 391140 Implement x-webkit-deflate-frame extension as-used by Chrome/Safari
 + 391188 Files written with Request.getPart().write(filename) should not be
   auto-deleted
 + 391483 fix bad javadoc example in shutdown handler
 + 391588 WebSocket Client does not set masking on close frames
 + 391590 WebSocket client needs ability to set requested extensions
 + 391591 WebSocket client should support x-webkit-deflate-frame
 + 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
 + JETTY-1515 Include cookies on 304 responses from DefaultServlet.
 + JETTY-1532 HTTP headers decoded with platform's default encoding
 + JETTY-1541 fixed different behaviour for single byte writes
 + JETTY-1547 Jetty does not honor web.xml
   web-app/jsp-config/jsp-property-group/default-content-type

jetty-9.0.0.M0 - 21 September 2012
 + 380924 xmlconfiguration <Configure and <New supports named constructors,
   including dynamic ordering of parameters
 + 380928 Implement new websocket close code
 + 385448 migrate jetty jmx usage to be annotation based
 + 387928 retire jetty-ajp
 + 389639 set plugin version for jetty-jspc-maven-plugin

jetty-8.1.7.v20120910 - 10 September 2012
 + 388895 Update dependencies for jetty-jndi
 + fix busy logging statement re: sessions

jetty-7.6.7.v20120910 - 10 September 2012
 + 388895 Update dependencies for jetty-jndi
 + fix busy logging statement re: sessions

jetty-8.1.6.v20120903 - 03 September 2012
 + 347130 Empty getResourcePaths due to ZipFileClosedException
 + 367591 Support Env variables in XmlConfiguration.
 + 377055 Prevent webapp classloader leaks
 + 379207 backported fixes from jetty-9 to make hierarchy work
 + 379423 Jetty URL Decoding fails for certain international characters
 + 383304 Reset PrintWriter on response recycle
 + 384847 better name
 + 385049 fix issue with pipelined connections when switching protocols
 + 385651 Message 'Address already in use' not specific enough
 + 385925 make SslContextFactory.setProtocols and
   SslContextFactory.setCipherSuites preserve the order of the given parameters
 + 386010 JspRuntimeContext rewraps System.err
 + 386591 add UnixCrypt note to about.html
 + 386714 used deferred auth for form login and error pages
 + 387896 populate session in SessionAuthentication as a valueBound in addition
   to activation so it is populate when needed
 + 387943 Catch CNFE when no jstl jars are installed
 + 387953 jstl does not work with jetty-7 in osgi
 + 388072 GZipFilter incorrectly gzips when Accept-Encoding: gzip; q=0
 + 388073 null session id from cookie causes NPE fixed
 + 388102 Jetty HttpClient memory leaks when sending larger files
 + 388393 WebAppProvider doesn't work alongside OSGi deployer
 + 388502 handle earlyEOF with 500
 + 388652 Do not flush on handle return if request is suspended
 + JETTY-1501 Setting custom error response message changes page title
 + JETTY-1515 Include cookies on 304 responses from DefaultServlet.
 + JETTY-1527 handle requests with URIs like http://host  (ie no / )
 + JETTY-1529 Ensure new session that has just been authenticated does not get
   renewed
 + JETTY-1532 HTTP headers decoded with platform's default encoding
 + JETTY-1541 fixed different behaviour for single byte writes

jetty-7.6.6.v20120903 - 03 September 2012
 + 347130 Empty getResourcePaths due to ZipFileClosedException
 + 367591 Support Env variables in XmlConfiguration.
 + 377055 Prevent webapp classloader leaks
 + 379207 backported fixes from jetty-9 to make hierarchy work
 + 379423 Jetty URL Decoding fails for certain international characters
 + 383304 Reset PrintWriter on response recycle
 + 384847 better name
 + 385049 fix issue with pipelined connections when switching protocols
 + 385651 Message 'Address already in use' not specific enough
 + 386010 JspRuntimeContext rewraps System.err
 + 386591 add UnixCrypt note to about.html
 + 386714 used deferred auth for form login and error pages
 + 387896 populate session in SessionAuthentication as a valueBound in addition
   to activation so it is populate when needed
 + 387943 Catch CNFE when no jstl jars are installed
 + 387953 jstl does not work with jetty-7 in osgi
 + 388072 GZipFilter incorrectly gzips when Accept-Encoding: gzip; q=0
 + 388073 null session id from cookie causes NPE fixed
 + 388102 Jetty HttpClient memory leaks when sending larger files
 + 388393 WebAppProvider doesn't work alongside OSGi deployer
 + 388502 handle earlyEOF with 500
 + 388652 Do not flush on handle return if request is suspended
 + JETTY-1501 Setting custom error response message changes page title
 + JETTY-1515 Include cookies on 304 responses from DefaultServlet.
 + JETTY-1527 handle requests with URIs like http://host  (ie no / )
 + JETTY-1529 Ensure new session that has just been authenticated does not get
   renewed
 + JETTY-1532 HTTP headers decoded with platform's default encoding
 + JETTY-1541 fixed different behaviour for single byte writes
 + 385925 make SslContextFactory.setProtocols and
   SslContextFactory.setCipherSuites preserve the order of the given parameters

jetty-8.1.5.v20120716 - 16 June 2012
 + 376717 Balancer Servlet with round robin support, contribution, added
   missing license
 + 379250 Server is added to shutdown hook twice
 + 380866 maxIdleTime set to 0 after session migration
 + 381399 Unable to stop a jetty instance that has not finished starting
 + 381401 Print log warning when stop attempt made with incorrect STOP.KEY
 + 381402 Make ContextHandler take set of protected directories
 + 381521 set Vary:Accept-Encoding header for content that might be compressed
 + 381639 CrossOriginFilter does not support Access-Control-Expose-Headers.
 + 381712 Support all declared servlets that implement
   org.apache.jasper.servlet.JspServlet
 + 381825 leave URI params in forwarded requestURI
 + 381876 Monitor should wait for child to finish before exiting.
 + 382343 Jetty XML support for Map is broken.
 + 383251 500 for SocketExceptions
 + 383881 WebSocketHandler sets request as handled
 + 384254 revert change to writable when not dispatched
 + 384280 Implement preliminary ServletRegistrations
 + 384847 CrossOriginFilter is not working.
 + 384896 JDBCSessionManager fails to load existing sessions on oracle when
   contextPath is /
 + 384980 Jetty client unable to recover from Time outs when connection count
   per address hits max.
 + 385138 add getter for session path and max cookie age that seemed to
   disappear in a merge long ago
 + JETTY-1523 It is imposible to map servlet to "/" using
   WebApplicationInitializer
 + JETTY-1525 Show handle status in response debug message
 + JETTY-1530 refine search control on ldap login module

jetty-7.6.5.v20120716 - 16 July 2012
 + 376717 Balancer Servlet with round robin support, contribution, added
   missing license
 + 379250 Server is added to shutdown hook twice
 + 380866 maxIdleTime set to 0 after session migration
 + 381399 Unable to stop a jetty instance that has not finished starting
 + 381401 Print log warning when stop attempt made with incorrect STOP.KEY
 + 381402 Make ContextHandler take set of protected directories
 + 381521 set Vary:Accept-Encoding header for content that might be compressed
 + 381639 CrossOriginFilter does not support Access-Control-Expose-Headers.
 + 381712 Support all declared servlets that implement
   org.apache.jasper.servlet.JspServlet
 + 381825 leave URI params in forwarded requestURI
 + 381876 Monitor should wait for child to finish before exiting.
 + 382343 Jetty XML support for Map is broken.
 + 383251 500 for SocketExceptions
 + 383881 WebSocketHandler sets request as handled
 + 384254 revert change to writable when not dispatched
 + 384847 CrossOriginFilter is not working.
 + 384896 JDBCSessionManager fails to load existing sessions on oracle when
   contextPath is /
 + 384980 Jetty client unable to recover from Time outs when connection count
   per address hits max.
 + JETTY-1525 Show handle status in response debug message
 + JETTY-1530 refine search control on ldap login module

jetty-8.1.4.v20120524 - 24 May 2012
 + 367608 ignore the aysncrequestreadtest as it is known to fail and is waiting
   for a fix
 + 371853 Support bundleentry: protocol for webapp embedded as directory in
   osgi bundle
 + 373620 Add ch.qos.logback.access.jetty to the Import-Package for
   jetty-osgi-boot-logback bundle
 + 376152 apply context resources recursively
 + 376801 Make JAAS login modules useable without jetty infrastructure
 + 377323 Request#getParts() throws ServletException when it should be throwing
   IllegalStateException
 + 377391 Manifest updates to jetty-osgi-boot-logback
 + 377492 NPE if jsp taglibs bundle not deployed
 + 377550 set charset when content type is set
 + 377587 ConnectHandler write will block on partial write
 + 377610 New session not timed out if an old session is invalidated in scope
   of same request
 + 377709 Support for RequestParameterCallback missing
 + 378242 Re-extract war on restart if incomplete extraction
 + 378273 Remove default Bundle-Localization header
 + 378487 Null out contextPath on Request.recycle
 + 379015 Use factored jetty xml config files for defaults
 + 379046 avoid closing idle connections from selector thread
 + 379089 DefaultServlet ignores its resourceBase and uses context's
   ResourceCollection when listing diretories
 + 379194 ProxyServlet enhancement to enable easy creation of alternative
   HttpClient implementations
 + 379909 FormAuthenticator Rembers only the URL of first Request before
   authentication
 + 380034 last modified times taken from JarEntry for JarFile resources
 + 380212 Clear buffer if parsing fails due to full buffer
 + 380222 JettyPolicyRuntimeTest failure

jetty-7.6.4.v20120524 - 24 May 2012
 + 367608 ignore the aysncrequestreadtest as it is known to fail and is waiting
   for a fix
 + 371853 Support bundleentry: protocol for webapp embedded as directory in
   osgi bundle
 + 373620 Add ch.qos.logback.access.jetty to the Import-Package for
   jetty-osgi-boot-logback bundle
 + 376152 apply context resources recursively
 + 376801 Make JAAS login modules useable without jetty infrastructure
 + 377391 Manifest updates to jetty-osgi-boot-logback
 + 377492 NPE when deploying a Web Application Bundle with unresolved
   Require-TldBundle
 + 377550 set charset when content type is set
 + 377587 ConnectHandler write will block on partial write
 + 377610 New session not timed out if an old session is invalidated in scope
   of same request
 + 377709 Support for RequestParameterCallback missing
 + 378242 Re-extract war on restart if incomplete extraction
 + 378273 Remove default Bundle-Localization header
 + 378487 Null out contextPath on Request.recycle
 + 379015 Use factored jetty xml config files for defaults
 + 379046 avoid closing idle connections from selector thread
 + 379089 DefaultServlet ignores its resourceBase and uses context's
   ResourceCollection when listing diretories
 + 379194 ProxyServlet enhancement to enable easy creation of alternative
   HttpClient implementations
 + 379909 FormAuthenticator Rembers only the URL of first Request before
   authentication
 + 380034 last modified times taken from JarEntry for JarFile resources
 + 380212 Clear buffer if parsing fails due to full buffer
 + 380222 JettyPolicyRuntimeTest failure

jetty-8.1.3.v20120416 - 16 April 2012
 + 349110 MultiPartFilter records the content-type in request params
 + 367172 Remove detection for slf4j NOPLogger
 + 372678 Embedded Examples need updates for new LoginService requirement
 + 373269 Make ServletHandler.notFound() method impl do nothing - override to
   send back 404.
 + 373421 address potential race condition related to the nonce queue removing
   the same nonce twice
 + 373952 bind called too frequently on refresh
 + 374018 correctly handle requestperminuted underflow
 + 374152 jetty-all-server MANIFEST contains wrong import:
   javax.servlet.annotation;version="[2.6,3)"
 + 374252 SslConnection.onClose() does not forward to nested connection.
 + 374258 SPDY leaks SSLEngines. Made the test more reliable.
 + 374367 NPE in QueuedThreadPool.dump() with early java6 jvms
 + 374475 Response.sendRedirect does not encode UTF-8 characters properly
 + 374881 Set copyWebInf to false by default
 + 374891 enhancement to how ProxyServlet determines the proxy target
 + 375009 Filter initialization error will throw MultiException
 + 375083 Flow control should take in account window size changes from
   concurrent SETTINGS
 + 375096 If starting a server instance fails in osgi it is cleaned up.
 + 375490 NPE with --help on command line
 + 375509 Stalled stream stalls other streams or session control frames. Now
   using a "death pill" instead of a boolean in order to avoid race conditions
   where DataInfos were read from the queue (but the boolean not updated yet),
   and viceversa.
 + 375594 fixed SSL tests so they are not order dependent
 + 375709 Ensure resolveTempDirectory failure does not deadlock; improve error
   message
 + 375906 Part.getHeader method not case insensitive
 + 375970 HttpServletRequest.getRemoteAddr() returns null when HTTP is over
   SPDY.
 + 376201 HalfClosed state not handled properly. Addendum to restore previous
   behavior, where a closed stream was also half closed.
 + 376324 <max-file-size> is not respected in <multipart-config>
 + JETTY-1495 Ensure dynamic servlet addition does not cause servlets to be
   inited.
 + JETTY-1500 form parameters from multipart request not available via
   request.getParameter
 + JETTY-1504 HttpServletResponseWrapper ignored when using asyncContext?

jetty-7.6.3.v20120416 - 16 April 2012
 + 367172 Remove detection for slf4j NOPLogger
 + 373269 Make ServletHandler.notFound() method impl do nothing - override to
   send back 404.
 + 373421 address potential race condition related to the nonce queue removing
   the same nonce twice
 + 373952 bind called too frequently on refresh
 + 374018 correctly handle requestperminuted underflow
 + 374252 SslConnection.onClose() does not forward to nested connection.
 + 374258 SPDY leaks SSLEngines. Made the test more reliable.
 + 374367 NPE in QueuedThreadPool.dump() with early java6 jvms
 + 374475 Response.sendRedirect does not encode UTF-8 characters properly
 + 374881 Set copyWebInf to false by default
 + 374891 enhancement to how ProxyServlet determines the proxy target
 + 375009 Filter initialization error will throw MultiException
 + 375083 Flow control should take in account window size changes from
   concurrent SETTINGS
 + 375096 If starting a server instance fails in osgi it is cleaned up.
 + 375490 NPE with --help on command line
 + 375509 Stalled stream stalls other streams or session control frames. Now
   using a "death pill" instead of a boolean in order to avoid race conditions
   where DataInfos were read from the queue (but the boolean not updated yet),
   and viceversa.
 + 375594 fixed SSL tests so they are not order dependent
 + 375709 Ensure resolveTempDirectory failure does not deadlock; improve error
   message
 + 375970 HttpServletRequest.getRemoteAddr() returns null when HTTP is over
   SPDY.
 + 376201 HalfClosed state not handled properly. Addendum to restore previous
   behavior, where a closed stream was also half closed.
 + JETTY-1504 HttpServletResponseWrapper ignored when using asyncContext?

jetty-8.1.2.v20120308 - 08 March 2012
 + 370387 SafariWebsocketDraft0Test failure during build.
 + 371168 Update ClientCrossContextSessionTest
 + 372093 handle quotes in Require-Bundle manifest string
 + 372457 Big response + slow clients + pipelined requests cause Jetty spinning
   and eventually closing connections. Added a TODO for a method renaming that
   will happen in the next major release (to avoid break implementers).
 + 372487 JDBCSessionManager does not work with Oracle
 + 372806 Command line should accept relative paths for xml config files
 + 373037 jetty.server.Response.setContentLength(int) should not close a Writer
   when length=0
 + 373162 add improved implementation for getParameterMap(), needs a test
   though and the existing setup doesn't seem like it would easily support the
   needed test so need to do that still
 + 373306 Set default user agent extraction pattern for UserAgentFilter
 + 373567 cert validation issue with ocsp and crldp always being enabled when
   validating turned on fixed
 + 373603 NullPointer in WebServletAnnotation
 + JETTY-1409 GzipFilter will double-compress application/x-gzip content
 + JETTY-1489 WebAppProvider attempts to deploy .svn folder
 + JETTY-1494 .

jetty-7.6.2.v20120308 - 08 March 2012
 + 370387 SafariWebsocketDraft0Test failure during build.
 + 371168 Update ClientCrossContextSessionTest
 + 372093 handle quotes in Require-Bundle manifest string
 + 372457 Big response + slow clients + pipelined requests cause Jetty spinning
   and eventually closing connections. Added a TODO for a method renaming that
   will happen in the next major release (to avoid break implementers).
 + 372487 JDBCSessionManager does not work with Oracle
 + 372806 Command line should accept relative paths for xml config files
 + 373037 jetty.server.Response.setContentLength(int) should not close a Writer
   when length=0
 + 373162 add improved implementation for getParameterMap(), needs a test
   though and the existing setup doesn't seem like it would easily support the
   needed test so need to do that still
 + 373306 Set default user agent extraction pattern for UserAgentFilter
 + 373567 cert validation issue with ocsp and crldp always being enabled when
   validating turned on fixed
 + JETTY-1409 GzipFilter will double-compress application/x-gzip content
 + JETTY-1489 WebAppProvider attempts to deploy .svn folder
 + JETTY-1494 .

jetty-8.1.1.v20120215 - 15 February 2012
 + 369121 simplified test
 + 370120 jvm arguments added via start.ini and --exec are missing spaces
 + 370137 SslContextFactory does not respect order for
   [included|excluded]Protocols() and [included|excluded]CipherSuites().
 + 370368 resolve stack overflow in mongo db session manager
 + 370386 Remove META-INF from jetty distro
 + 371040 nosqlsession needs to call correct super contructor for new sessions
 + 371041 valid was not being set to new mongo db sessions, and the call to
   mongodb api was wrong in isIdInUse
 + 371162 NPE protection for nested security handlers
 + JETTY-1484 Add option for HashSessionManager to delete session files if it
   can't restore them

jetty-7.6.1.v20120215 - 15 February 2012
 + 369121 simplified test
 + 370120 jvm arguments added via start.ini and --exec are missing spaces
 + 370137 SslContextFactory does not respect order for
   [included|excluded]Protocols() and [included|excluded]CipherSuites().
 + 370368 resolve stack overflow in mongo db session manager
 + 370386 Remove META-INF from jetty distro
 + 371040 nosqlsession needs to call correct super contructor for new sessions
 + 371041 valid was not being set to new mongo db sessions, and the call to
   mongodb api was wrong in isIdInUse
 + 371162 NPE protection for nested security handlers
 + JETTY-1484 Add option for HashSessionManager to delete session files if it
   can't restore them

jetty-8.1.0.v20120127 - 27 January 2012
 + 368773 allow authentication to be set by non securityHandler handlers
 + 368992 avoid update key while flushing during a write
 + 369216 turned off the shared resource cache
 + 369349 replace quotes with a space escape method

jetty-7.6.0.v20120127 - 27 January 2012
 + 368773 allow authentication to be set by non securityHandler handlers
 + 368992 avoid update key while flushing during a write
 + 369216 turned off the shared resource cache
 + 369349 replace quotes with a space escape method

jetty-8.1.0.RC5 - 20 January 2012
 + 359329 Prevent reinvocation of LoginModule.login with jaspi for already
   authed user
 + 368632 Remove superfluous removal of org.apache.catalina.jsp_file
 + 368633 fixed configure.dtd resource mappings
 + 368635 moved lifecycle state reporting from toString to dump
 + 368773 process data constraints without realm
 + 368787 always set token view to new header buffers in httpparser
 + 368821 improved test harness
 + 368920 JettyAwareLogger always formats the arguments.
 + 368948 POM for jetty-jndi references unknown version for javax.activation.
 + 368992 NPE in HttpGenerator.prepareBuffers() test case.
 + JETTY-1475 made output state fields volatile to provide memory barrier for
   non dispatched thread IO

jetty-7.6.0.RC5 - 20 January 2012
 + 359329 Prevent reinvocation of LoginModule.login with jaspi for already
   authed user
 + 368632 Remove superfluous removal of org.apache.catalina.jsp_file
 + 368633 fixed configure.dtd resource mappings
 + 368635 moved lifecycle state reporting from toString to dump
 + 368773 process data constraints without realm
 + 368787 always set token view to new header buffers in httpparser
 + 368821 improved test harness
 + 368920 JettyAwareLogger always formats the arguments.
 + 368948 POM for jetty-jndi references unknown version for javax.activation.
 + 368992 avoid non-blocking flush when writing to avoid setting !_writable
   without _writeblocked
 + JETTY-1475 made output state fields volatile to provide memory barrier for
   non dispatched thread IO

jetty-8.1.0.RC4 - 13 January 2012
 + 365048 jetty Http client does not send proxy authentication when requesting
   a Https-resource through a web-proxy.
 + 366774 removed XSS vulnerbility
 + 367099 Upgrade jetty-websocket for RFC 6455 - Addendum.
 + 367433 added tests to investigate
 + 367435 improved D00 test harness
 + 367485 HttpExchange canceled before response do not release connection.
 + 367502 WebSocket connections should be closed when application context is
   stopped.
 + 367548 jetty-osgi-boot must not import the nested package twice
 + 367591 corrected configuration.xml version to 7.6
 + 367635 Added support for start.d directory
 + 367638 limit number of form parameters to avoid DOS
 + 367716 simplified idleTimeout logic
 + 368035 WebSocketClientFactory does not invoke super.doStop().
 + 368060 do not encode sendRedirect URLs
 + 368112 NPE on <jsp-config><taglib> element parsing web.xml
 + 368113 Support servlet mapping to ""
 + 368114 Protect against non-Strings in System properties for Log
 + 368189 WebSocketClientFactory should not manage external thread pool. 368240
   - Improve AggregateLifeCycle handling of shared lifecycles
 + 368215 Remove debug from jaspi
 + 368240 Better handling of locally created ThreadPool. Forgot to null out
   field.
 + 368291 Change warning to info for NoSuchFieldException on
   BeanELResolver.properties
 + JETTY-1467 close half closed when idle

jetty-7.6.0.RC4 - 13 January 2012
 + 365048 jetty Http client does not send proxy authentication when requesting
   a Https-resource through a web-proxy.
 + 366774 removed XSS vulnerbility
 + 367099 Upgrade jetty-websocket for RFC 6455 - Addendum.
 + 367716 simplified maxIdleTime logic
 + 368035 WebSocketClientFactory does not invoke super.doStop().
 + 368060 do not encode sendRedirect URLs
 + 368114 Protect against non-Strings in System properties for Log
 + 368189 WebSocketClientFactory should not manage external thread pool.
 + 368215 Remove debug from jaspi
 + 368240 Improve AggregateLifeCycle handling of shared lifecycles
 + 368291 Change warning to info for NoSuchFieldException on
   BeanELResolver.properties

jetty-8.1.0.RC2 - 22 December 2011
 + 359329 jetty-jaspi must exports its packages. jetty-plus must import
   javax.security
 + 364638 HttpParser closes if data received while seeking EOF. Tests fixed to
   cope
 + 364921 Made test less time sensitive
 + 364936 use Resource for opening URL streams
 + 365267 NullPointerException in bad Address
 + 365375 ResourceHandler should be a HandlerWrapper
 + 365750 Support WebSocket over SSL, aka wss://
 + 365932 Produce jetty-websocket aggregate jar for android use
 + 365947 Set headers for Auth failure and retry in http-spi
 + 366316 Superfluous printStackTrace on 404
 + 366342 Dont persist DosFilter trackers in http session
 + 366730 pass the time idle to onIdleExpire
 + 367048 test harness for guard on suspended requests
 + 367175 SSL 100% CPU spin in case of blocked write and RST.
 + 367219 WebSocketClient.open() fails when URI uses default ports.
 + 367383 jsp-config element must be returned for
   ServletContext.getJspConfigDescriptor
 + JETTY-1460 suppress PrintWriter exceptions
 + JETTY-1463 websocket D0 parser should return progress even if no fill done
 + JETTY-1465 NPE in ContextHandler.toString

jetty-7.6.0.RC3 - 05 January 2012
 + 367433 added tests to investigate
 + 367435 improved D00 test harness
 + 367485 HttpExchange canceled before response do not release connection.
 + 367502 WebSocket connections should be closed when application context is
   stopped.
 + 367591 corrected configuration.xml version to 7.6
 + 367635 Added support for start.d directory
 + 367638 limit number of form parameters to avoid DOS
 + JETTY-1467 close half closed when idle

jetty-7.6.0.RC2 - 22 December 2011
 + 364638 HttpParser closes if data received while seeking EOF. Tests fixed to
   cope
 + 364921 Made test less time sensitive for ssl
 + 364936 use Resource for opening URL streams
 + 365267 NullPointerException in bad Address
 + 365375 ResourceHandler should be a HandlerWrapper
 + 365750 Support WebSocket over SSL, aka wss://
 + 365932 Produce jetty-websocket aggregate jar for android use
 + 365947 Set headers for Auth failure and retry in http-spi
 + 366316 Superfluous printStackTrace on 404
 + 366342 Dont persist DosFilter trackers in http session
 + 366730 pass the time idle to onIdleExpire
 + 367048 test harness for guard on suspended requests
 + 367175 SSL 100% CPU spin in case of blocked write and RST.
 + 367219 WebSocketClient.open() fails when URI uses default ports.
 + JETTY-1460 suppress PrintWriter exceptions
 + JETTY-1463 websocket D0 parser should return progress even if no fill done
 + JETTY-1465 NPE in ContextHandler.toString

jetty-8.1.0.RC1 - 06 December 2011
 + 360245 The version of the javax.servlet packages to import is 2.6 instead of
   3.0
 + 365370 ServletHandler can fall through to nested handler

jetty-8.1.0.RC0 - 30 November 2011
 + 352565 cookie httponly flag ignored
 + 353285 ServletSecurity annotation ignored
 + 357163 jetty 8 ought to proxy jetty8 javadocs
 + 357209 JSP tag listeners not called
 + 360051 SocketConnectionTest.testServerClosedConnection is excluded.
 + 361135 Allow session cookies to NEVER be marked as secure, even on HTTPS
   requests.
 + 362249 update shell scripts to jetty8
 + 363878 Add ecj compiler to jetty-8 for jsp
 + 364283 can't parse the servlet multipart-config for the web.xml
 + 364430 Support web.xml enabled state for servlets

jetty-7.6.0.RC5 - 20 January 2012
 + 359329 Prevent reinvocation of LoginModule.login with jaspi for already
   authed user
 + 368632 Remove superfluous removal of org.apache.catalina.jsp_file
 + 368633 fixed configure.dtd resource mappings
 + 368635 moved lifecycle state reporting from toString to dump
 + 368773 process data constraints without realm
 + 368787 always set token view to new header buffers in httpparser
 + 368821 improved test harness
 + 368920 JettyAwareLogger always formats the arguments.
 + 368948 POM for jetty-jndi references unknown version for javax.activation.
 + 368992 avoid non-blocking flush when writing to avoid setting !_writable
   without _writeblocked
 + JETTY-1475 made output state fields volatile to provide memory barrier for
   non dispatched thread IO

jetty-7.6.0.RC4 - 13 January 2012
 + 365048 jetty Http client does not send proxy authentication when requesting
   a Https-resource through a web-proxy.
 + 366774 removed XSS vulnerbility
 + 367099 Upgrade jetty-websocket for RFC 6455 - Addendum.
 + 367716 simplified idleTimeout logic
 + 368035 WebSocketClientFactory does not invoke super.doStop().
 + 368060 do not encode sendRedirect URLs
 + 368114 Protect against non-Strings in System properties for Log
 + 368189 WebSocketClientFactory should not manage external thread pool.
 + 368215 Remove debug from jaspi
 + 368240 Improve AggregateLifeCycle handling of shared lifecycles
 + 368291 Change warning to info for NoSuchFieldException on
   BeanELResolver.properties

jetty-7.6.0.RC3 - 05 January 2012
 + 367433 added tests to investigate
 + 367435 improved D00 test harness
 + 367485 HttpExchange canceled before response do not release connection.
 + 367502 WebSocket connections should be closed when application context is
   stopped.
 + 367591 corrected configuration.xml version to 7.6
 + 367635 Added support for start.d directory
 + 367638 limit number of form parameters to avoid DOS
 + JETTY-1467 close half closed when idle

jetty-7.6.0.RC2 - 22 December 2011
 + 364638 HttpParser closes if data received while seeking EOF. Tests fixed to
   cope
 + 364921 Made test less time sensitive for ssl
 + 364936 use Resource for opening URL streams
 + 365267 NullPointerException in bad Address
 + 365375 ResourceHandler should be a HandlerWrapper
 + 365750 Support WebSocket over SSL, aka wss://
 + 365932 Produce jetty-websocket aggregate jar for android use
 + 365947 Set headers for Auth failure and retry in http-spi
 + 366316 Superfluous printStackTrace on 404
 + 366342 Dont persist DosFilter trackers in http session
 + 366730 pass the time idle to onIdleExpire
 + 367048 test harness for guard on suspended requests
 + 367175 SSL 100% CPU spin in case of blocked write and RST.
 + 367219 WebSocketClient.open() fails when URI uses default ports.
 + JETTY-1460 suppress PrintWriter exceptions
 + JETTY-1463 websocket D0 parser should return progress even if no fill done
 + JETTY-1465 NPE in ContextHandler.toString

jetty-7.6.0.RC1 - 04 December 2011
 + 352565 cookie httponly flag ignored
 + 353285 ServletSecurity annotation ignored
 + 357163 jetty 8 ought to proxy jetty8 javadocs
 + 357209 JSP tag listeners not called
 + 360051 SocketConnectionTest.testServerClosedConnection is excluded.
 + 361135 Allow session cookies to NEVER be marked as secure, even on HTTPS
   requests.
 + 362249 update shell scripts to jetty8
 + 363878 Add ecj compiler to jetty-8 for jsp
 + 364283 can't parse the servlet multipart-config for the web.xml
 + 364430 Support web.xml enabled state for servlets
 + 365370 ServletHandler can fall through to nested handler

jetty-7.6.0.RC0 - 29 November 2011
 + 349110 fixed bypass chunk handling
 + 360546 handle set count exceeding max integer
 + 362111 StdErrLog.isDebugEnabled() returns true too often
 + 362113 Improve Test Coverage of org.eclipse.jetty.util.log classes
 + 362407 setTrustStore(Resource) -> setTrustStoreResource(R)
 + 362447 add setMaxNonceAge() to DigestAuthenticator
 + 362468 NPE at line org.eclipse.jetty.io.BufferUtil.putHexInt
 + 362614 NPE in accepting connection
 + 362626 IllegalStateException thrown when SslContextFactory preconfigured
   with SSLContext
 + 362696 expand virtual host configuration options to ContextHandler and add
   associated test case for new behavior
 + 362742 improved UTF8 exception reason
 + 363124 improved websocket close handling
 + 363381 Throw IllegalStateException if Request uri is null on getServerName
 + 363408 GzipFilter should not attempt to compress HTTP status 204
 + 363488 ShutdownHandler use stopper thread
 + 363718 Setting java.rmi.server.hostname in jetty-jmx.xml
 + 363757 partial fix
 + 363785 StdErrLog must use system-dependent EOL.
 + 363943 ignore null attribute values
 + 363993 EOFException parsing HEAD response in HttpTester
 + 364638 SCEP does idle timestamp checking. New setCheckForIdle method
   controls onIdleExpired callback. 364921 a second onIdleExpired callback will
   result in close rather than a shutdown output.
 + 364657 Support HTTP only cookies from standard API
 + JETTY-1442 add _hostHeader setter for ProxyRule
 + Refactored NIO layer for better half close handling

jetty-8.0.4.v20111024 - 24 October 2011
 + 358263 JDBCSessionIdManager add setDatasource(DataSource) method
 + 358649 Replace existing StdErrLog system properties for DEBUG/IGNORED with
   LEVEL instead.
 + 360836 Accept parameters with bad UTF-8. Use replacement character
 + 360912 CrossOriginFilter does not send Access-Control-Allow-Origin on
   responses. 355103 Make allowCredentials default to true in
   CrossOriginFilter.
 + 360938 Connections closed after a while.
 + 361135 secure cookies for sessions
 + 361319 Log initialization does not catch correct exceptions on all jvms
 + 361325 359292 Allow KeyStore to be set
 + 361456 release timer task on connection failed
 + 361655 ExecutorThreadPool.isLowOnThreads() returns wrong value.
 + JETTY-1444 start threadpool before selector manager

jetty-7.5.4.v20111024 - 24 October 2011
 + 358263 JDBCSessionIdManager add setDatasource(DataSource) method
 + 358649 Replace existing StdErrLog system properties for DEBUG/IGNORED with
   LEVEL instead.
 + 360836 Accept parameters with bad UTF-8. Use replacement character
 + 360912 CrossOriginFilter does not send Access-Control-Allow-Origin on
   responses. 355103 Make allowCredentials default to true in
   CrossOriginFilter.
 + 360938 Connections closed after a while.
 + 361319 Log initialization does not catch correct exceptions on all jvms
 + 361325 359292 Allow KeyStore to be set
 + 361456 release timer task on connection failed
 + 361655 ExecutorThreadPool.isLowOnThreads() returns wrong value.
 + JETTY-1444 start threadpool before selector manager

jetty-8.0.3.v20111011 - 11 October 2011
 + 348978 migrate jetty-http-spi
 + 358649 StdErrLog system properties for package/class logging LEVEL.

jetty-8.0.2.v20111006 - 06 October 2011
 + 336443 add missing comma in DigestAuthenticator string
 + 342161 ScannerTest fails intermittently on Mac OS X
 + 346419 testing HttpClient FDs
 + 353267 Request._parameters initialization bug
 + 353509 jetty-client unit tests are running too long
 + 353627 Basic Auth checks that Basic method has been send
 + 356144 Allow SelectorManager thread priority to be set
 + 356274 Start SSL socket factory in call to open()
 + 357163 jetty 8 ought to proxy jetty8 javadocs
 + 357178 websockets draft 14 support
 + 357188 Send content buffer directly
 + 357209 JSP tag listeners not called
 + 357216 Logging via Log4J does not expand braces in format strings
 + 357240 more half close refinements
 + 357338 remove debug
 + 357672 resolve issue with serializing pojos with mongodb session manager,
   thanks to john simone for the discovery and fix
 + 357959 Include javadoc in distribution
 + 358027 NullPointerException in ResourceHandler with jetty-stylesheet.css
 + 358035 idle time only active if > 0
 + 358147 Add catch for UnknownHostException to fix leaky file descriptor in
   client
 + 358164 Dispatch from servlet to handler
 + 358263 add method for osgi users to register a driver as Class.forName does
   not work for them
 + 358649 StdErrLog system properties for package/class logging LEVEL.
 + 358674 Still allows sslv3 for now
 + 358687 Updated jsp does not scan for system tlds Fixed pattern.
 + 358784 JSP broken on Java 1.5
 + 358925 bit more javadoc on usage
 + 358959 File descriptor leak with UnresolvedAddressException
 + 359309 adjust previous test for servletPath to include pathInfo
 + 359673 updated websocket version handling
 + 359675 Principal != String, fix for issue in property file login manager
 + 360051 SocketConnectionTest.testServerClosedConnection is excluded.
 + 360066 jsps referenced in web.xml <jsp-file> elements do not compile
 + JETTY-1130 Access Sessions from HashSessionIdManager
 + JETTY-1277 Fixed sendRedirect encoding of relative locations
 + JETTY-1322 idle sweeper checks for closed endp
 + JETTY-1377 extra logging for busy selector
 + JETTY-1378 new sys property for the latest jsp-impl to force the use of the
   JDTCompiler when running in OSGi.
 + JETTY-1414 applied to PropertyUserStore
 + JETTY-1415 Start/Stop Server and Client only once in test, code format
 + JETTY-1420 Set Host header for new request in RedirectListener
 + JETTY-1421 Implement RedirectListener.onException,onConnectionFailed
 + JETTY-1423 force connection to be closed returned
 + JETTY-1430 local JNDI contexts don't carry environment
 + JETTY-1434 Add a jsp that exercises jstl.
 + JETTY-1439 space in directory installation path causes classloader problem

jetty-7.5.3.v20111011 - 11 October 2011
 + 348978 migrate jetty-http-spi
 + 358649 StdErrLog system properties for package/class logging LEVEL.

jetty-7.5.2.v20111006 - 06 October 2011
 + 336443 check nonce count is increasing
 + 342161 ScannerTest fails intermittently on Mac OS X
 + 346419 testing HttpClient FDs
 + 353267 Request._parameters initialization bug
 + 353509 jetty-client unit tests are running too long
 + 353627 Basic Auth checks that Basic method has been send
 + 356144 Allow SelectorManager thread priority to be set
 + 356274 Start SSL socket factory in call to open()
 + 357178 websockets draft 14 support
 + 357188 Send content buffer directly
 + 357209 JSP tag listeners not called
 + 357216 Logging via Log4J does not expand braces in format strings
 + 357240 more half close refinements
 + 357338 remove debug
 + 357672 resolve issue with serializing pojos with mongodb session manager,
   thanks to john simone for the discovery and fix
 + 357959 Include javadoc in distribution
 + 358027 NullPointerException in ResourceHandler with jetty-stylesheet.css
 + 358035 idle time only active if > 0
 + 358147 Add catch for UnknownHostException to fix leaky file descriptor in
   client
 + 358164 Dispatch from servlet to handler
 + 358263 add method for osgi users to register a driver as Class.forName does
   not work for them
 + 358649 StdErrLog system properties for package/class logging LEVEL.
 + 358674 Still allows sslv3 for now
 + 358687 Updated jsp does not scan for system tlds Fixed pattern.
 + 358784 JSP broken on Java 1.5
 + 358925 bit more javadoc on usage
 + 358959 File descriptor leak with UnresolvedAddressException
 + 359309 adjust previous test for servletPath to include pathInfo
 + 359673 updated websocket version handling
 + 359675 Principal != String, fix for issue in property file login manager
 + 360051 SocketConnectionTest.testServerClosedConnection is excluded.
 + 360066 jsps referenced in web.xml <jsp-file> elements do not compile
 + JETTY-1130 Access Sessions from HashSessionIdManager
 + JETTY-1277 Fixed sendRedirect encoding of relative locations
 + JETTY-1322 idle sweeper checks for closed endp
 + JETTY-1377 extra logging for busy selector
 + JETTY-1378 new sys property for the latest jsp-impl to force the use of the
   JDTCompiler when running in OSGi.
 + JETTY-1414 applied to PropertyUserStore
 + JETTY-1415 Start/Stop Server and Client only once in test, code format
 + JETTY-1420 Set Host header for new request in RedirectListener
 + JETTY-1421 Implement RedirectListener.onException,onConnectionFailed
 + JETTY-1423 force connection to be closed returned
 + JETTY-1430 local JNDI contexts don't carry environment
 + JETTY-1434 Add a jsp that exercises jstl.
 + JETTY-1439 space in directory installation path causes classloader problem

jetty-8.0.1.v20110908 - 08 September 2011
 + 350634 Added Resource.newResource(File)
 + 356190 fix monodb tests  for changed test api
 + 356428 removed timed waits from test
 + 356693 reduce visibility to webapp of websocket implementations
 + 356695 jetty server jars are provided for websockets
 + 356726 Instead of the sessionDestroyed called sessionCreated after
   invalidate session
 + 356751 Add null protection to ServletContextHandler.doStop
 + 356823 correctly decode close codes.  Send not utf-8 close code.
 + 357058 Acceptor thread blocking

jetty-7.5.1.v20110908 - 08 September 2011
 + 350634 Added Resource.newResource(File)
 + 356190 fix monodb tests  for changed test api
 + 356428 removed timed waits from test
 + 356693 reduce visibility to webapp of websocket implementations
 + 356695 jetty server jars are provided for websockets
 + 356726 Instead of the sessionDestroyed called sessionCreated after
   invalidate session
 + 356751 Add null protection to ServletContextHandler.doStop
 + 356823 correctly decode close codes.  Send not utf-8 close code.
 + 357058 Acceptor thread blocking

jetty-8.0.0.v20110901 - 01 September 2011
 + 352565 cookie httponly flag ignored
 + 353073 better warnings
 + 353285 ServletSecurity annotation ignored
 + 356421 Upgraded websocket to draft 13 support

jetty-7.5.0.v20110901 - 01 September 2011
 + 353073 better warnings
 + 356421 Upgraded websocket to draft 13 support

jetty-7.5.0.RC2 - 30 August 2011
 + 293739 Hide stacks in named log testing. Various other minor log cleanups in
   output.
 + 352188 TestClient correctly processes --host option in jetty-websocket
 + 352222 Moved JmxMonitor functionality from Codehaus
 + 353014 TimeoutExchangeTest run time reduced
 + 353073 deprecated non factory method for websocket clients
 + 353192 Better warning for classes of wrong type
 + 353623 Added new methods to HttpExchange
 + 353624 HttpURI accepts java.net.URI object in constructor
 + 354080 ServletContextHandler allows to replace any subordinate handler when
   restarted
 + 355478 set public to HashedSession, looks like honest mistake and not by
   design to be this way
 + 355854 remove automatic conversion in favor of issuing a warning for
   jetty-web.xml that can't be processed
 + 356128 Moved integration tests from jetty-monitor to test-integration module
 + 356137 Upgrade to jsp implementation version 2.1.3-b10
 + 356144 added SelectorManager.setSelectorPriorityDelta(int)
 + JETTY-1410 handle 1xx in similar fashion to 401s and 302s

jetty-7.5.0.RC1 - 19 August 2011
 + 276670 SLF4J loggers show correct location information
 + 335001 Eliminate expected exceptions from log when running in JBoss
 + 355103 Make allowCredentials default to true in CrossOriginFilter
 + 355162 Allow creating an empty resource collection
 + JETTY-1410 HTTP client handles CONTINUE 100 response correctly
 + JETTY-1414 HashLoginService doesn't refresh realm if specified config
   filename is not an absolute platform specific value

jetty-8.0.0.RC0 - 16 August 2011
 + 352565 cookie httponly flag ignored
 + 353285 ServletSecurity annotation ignored
 + Enable annotations by default
 + Merge from jetty-7.4.3

jetty-8.0.0.M3 - 27 May 2011
 + 324505 Implement API login
 + 335500 request.getParts() throws a NullPointerException
 + 343472 isUserInRole does not prevent subsequent login call.
 + 346180 jsp-2.2 support
 + Updated to jetty-7.4.2.v20110526

jetty-7.5.0.RC0 - 15 August 2011
 + 298502 Handle 200 Connect responses with no content-length
 + 347484 / - > ${/} in some paths in grant codebases
 + 349005 add javadoc detailing the convenience hack of removing leading /'s
 + 351516 Refactored sessions to better support nosql session managers
 + 351576 Do not use deprecated method File.toURL()
 + 352046 Need try/catch around features set in XmlParser
 + 352133 Generally resolve java 1.5isms
 + 352176 xml parsing on startElement should be more flexible on using qName or
   localName
 + 352421 HttpURI paths beginning with '.'
 + 352684 Implemented spinning thread analyzer
 + 352786 GzipFilter fails to pass parameters to GzipResponseWrapper
 + 352999 ExpireTest running too long
 + 353073 WebSocketClient
 + 353095 maven-jetty-plugin: PermGen leak due to javax.el.BeanELResolver
 + 353165 addJars can follow symbolic link jar files
 + 353210 Bundle-Version in o.e.j.o.boot.logback fix
 + 353465 JAASLoginService ignores callbackHandlerClass
 + 353563 HttpDestinationQueueTest too slow
 + 353862 Improve performance of QuotedStringTokenizer.quote()
 + 354014 Content-Length is passed to wrapped response in GZipFilter
 + 354204 Charset encodings property file not used
 + 354397 RewriteRegexRule handles special characters in regex group
 + 354466 Typo in example config of jetty-plus.xml

jetty-7.4.5.v20110725 - 25 July 2011
 + 347484 / - > ${/} in some paths in grant codebases
 + 352133 resolve some 1.5isms
 + 352421 HttpURI paths beginning with '.'
 + 352786 GzipFilter fails to pass parameters to GzipResponseWrapper

jetty-7.4.4.v20110707 - 07 July 2011
 + 308851 Converted all jetty-client module tests to JUnit 4
 + 345268 JDBCSessionManager does not work with maxInactiveInterval = -1
 + 350397 SelectChannelConnector does not shutdown gracefully
 + 350634 Reverted FileResource constructor changes
 + 351039 Forward dispatch should retain locale
 + 351199 HttpServletResponse.encodeURL() wrongly encodes an url without path
   when cookies are disabled
 + JETTY-1153 Default charset/encoding of HTTP POST requests
 + JETTY-1380 Jetty Rewrite example does not work in Hightide

jetty-7.4.3.v20110701 - 01 July 2011
 + 295832 ProxyServlet more extensible and configurable
 + 302566 GZIP handler for embedded Jetty servers
 + 308851 Converted HttpExchangeTest and related tests to JUnit 4
 + 324704 JDBC Session Manager reloading session
 + 332200 Eliminate expected exceptions from log while using
   org.eclipse.jetty.jmx bundle
 + 347468 o.e.j.deploy.binding.GlobalWebappConfigBindingTest fails on Windows
   platform
 + 347617 Dynamically install/update/remove OSGi bundles discovered in the
   contexts folder
 + 347717 start.jar destroys dependent child of --exec
 + 347889 OSGi should follow directive visibility:=reexport for
   META-INF/web-fragments and resources
 + 347898 Close channel on JVM exceptions
 + 348652 jetty.sh starts two unix processes
 + 348935 Close A tag in directory listing
 + 349344 Passing empty query string to UrlEncoded#decodeTo(String, MultiMap,
   String) does not yield an empty map
 + 349738 set buffer sizes for http client in proxy servlet
 + 349870 proxy servlet protect continuation against fast failing exchanges
 + 349896 SCEP supports zero idleTimeout
 + 349897 draft -09 websockets
 + 349997 MBeanContainer uses weak references
 + 350533 Add "Origin" to the list of allowed headers in CrossOriginFilter
 + 350634 Cleanup FileResource construction
 + 350642 Don't close SCEP during NIOBuffer manipulation
 + JETTY-1342 Recreate selector in change task
 + JETTY-1385 NPE in jetty client's
   HTttpExchange.setRequestContentSource(InputStream)
 + JETTY-1390 RewriteHandler handles encoded URIs

jetty-7.4.2.v20110526
 + 334443 Improve the ability to specify extra class paths using the Jetty
   Maven Plugin
 + 336220 tmp directory is not set if you reload a webapp with
   jetty-maven-plugin
 + 338364 Fixed expires header for set cookies
 + 345615 Enable SSL Session caching
 + 345729 binding for managing server and system classes globally
 + 345763 Source file is updated during the build
 + 345873 Update jetty-ssl.xml to new style
 + 345900 Handle IPv6 with default port
 + 346014 Fixed full HttpGenerator
 + 346124 ServletContext resources paths not resolved correctly when using UNC
   shares
 + 346179 o.e.j.util.ScannerTest fails on MacOS X platform
 + 346181 o.e.j.server.StressTest stalls on MacOS X platform
 + 346614 HttpConnection.handle() spins in case of SSL truncation attacks
 + 346764 OrderedGroupBinding deployment binding
 + 346998 AbstractLifeCycle.isRunning() returns false if state changes from
   STARTING to STARTED during call
 + 347137 Allow SSL renegotiations by default in HttpClient
 + 374174 Consistent mbean names
 + JETTY-1146 Encode jsessionid in sendRedirect
 + JETTY-1342 Recreate selector if wakeup throws JVM bug

jetty-7.4.1.v20110513
 + 288563 remove unsupported and deprecated --secure option
 + 332907 Add context property to ObjectName of JMX MBeans
 + 336056 Ability to override the computation of the ContextHandler to deploy
   the DefaultServlet on the HttpService
 + 340040 Support for a total timeout
 + 343083 Set nested dispatch type and connection
 + 343172 Check package implementor for version
 + 343277 add support for a context white list
 + 343352 make sure that jetty.osgi.boot is activated when a WAB is registered
 + 343482 refactored overlay deployer layout to use WAR layout
 + 343567 HttpClient does not limit the destination's exchange queue
 + 343680 Handle OSGi bundle jars not ending in ".war"
 + 343707 'REQUEST' is printed on console for each incoming HTTP request
 + 343923 flush timeouts applied to outer loop
 + 343936 Session idle calls unbind and remove listeners
 + 344059 Websockets draft-07
 + 344067 Add support for OSGi fragment bundles to add static resources to
   web-bundles
 + 344513 Attempting to set ConfigurationClasses in jetty-web.xml causes NPE
 + 344529 Ability to customize the error handling of the OSGi HttpService
 + 345047 Readded deprecated ScanningAppDeployer#setMonitoredDir
 + 345290 Weak references from SessionIdManager. HashSessionManager cleanup.
 + 345543 Always close endpoint on SSLException
 + 345656 Disambiguate SslContextFactory#validateCerts property
 + 345679 Allow setting an initialized KeyStore as keystore/truststore of
   SslContextFactory
 + 345704 jetty-nested works with forwarded SSL in cloudfoundry
 + JETTY-954 WebAppContext eats any start exceptions instead of stopping the
   server load
 + JETTY-1314 Handle bad URI encodings
 + JETTY-1324 Tested not using CESU-8 instead of UTF-8
 + JETTY-1326 Invoker names not hashCode based
 + JETTY-1343 IllegalArgumentException for bad % encodings
 + JETTY-1347 Updated ServletHander javadoc

jetty-7.4.0.v20110414
 + 342504 Scanner Listener
 + 342700 refine websocket API for anticipated changes
 + JETTY-1362 Set root cause of UnavailableException
 + Various test harness cleanups to avoid random failures

jetty-7.4.0.RC0
 + 324110 Added test harnesses for merging of QueryStrings.
 + 337685 Update websocket API in preparation for draft -07
 + 338627 HashSessionManager.getIdleSavePeriod returns milliseconds instead of
   seconds
 + 338807 Ignore content length in 1xx, 204, 304 responses
 + 338819 Externally control Deployment Manager application lifecycle
 + 339084 Fixed NPE with servlet 3.0 async listener
 + 339150 Validate client certificate when it is used for authentication
 + 339187 In the OSGi manifest of the jetty-all-server aggregate, mark
   javax.annotation as optional
 + 339543 Add configuration options for Certificate Revocation checking
 + 340265 Improve handling of io shutdown in SSL
 + 340621 Added SizedThreadPool interface
 + 340636 HashSessionManager lazy loads all sessions
 + 340838 Update ConnectHandler to perform half closes properly
 + 340878 Integrations should be able to load their own keystores
 + 340920 Dynamically assign RMI registry port for integration testing
 + 340949 Scanner delays file notifications until files are stable
 + 341006 Move inner enums out into separate file
 + 341105 Stack trace is printed for an ignored exception
 + 341145 WebAppContext MBean attribute serverClasses returns empty value
 + 341171 Locking in HttpDestination blocks all requests to the same address
 + 341206 Stop order is wrong in HandlerWrapper
 + 341255 org.eclipse.http usage in AJP/SessionId linkage
 + 341386 Remote close not detected by HttpClient
 + 341394 Remove 'Unavailable' JMX attributes of WebAppContext MBean
 + 341439 Blocking HttpClient does not use soTimeout for timeouts
 + 341561 Exception when adding o.e.j.s.DoSFilter as managed attribute
 + 341692 Fixed deadlock if stopped while starting
 + 341694 Disable AJP buffer resizing
 + 341726 JSONPojoConverter handles characters
 + 341736 Split jetty-nested out of war module
 + 341850 Protect QTP dump from bad stacks
 + 341992 Overlayed context deployer
 + JETTY-1245 Pooled Buffers implementation
 + JETTY-1354 Added jetty-nested
 + Added extra session removal test
 + Ensure generated fragment names are unique

jetty-8.0.0.M2 - 16 November 2010
 + 320073 Reconsile configuration mechanism
 + 321068 JSF2 fails to initialize
 + 324493 Registration init parameter handling null check, setInitParameters
   additive
 + 324505 Request.login method must throw ServletException if it cant login
 + 324872 allow disabling listener restriction from using *Registration
   interfaces
 + 327416 Change meaning of @HandlesTypes in line with latest interpretation by
   JSR315
 + 327489 Change meaning of @MultipartConfig to match servlet spec 3.0
   maintenance release 3.0a
 + 328008 Handle update to Servlet Spec 3 Section 8.2.3.h.ii
 + 330188 Reject web-fragment.xml with same <name> as another already loaded
   one
 + 330208 Support new wording on servlet-mapping and filter-mapping merging
   from servlet3.0a
 + 330292 request.getParts() returns only one part when the name is the same
 + Update to jetty-7.2.1.v20101111

jetty-7.3.1.v20110307 - 07 March 2011
 + 316382 Support a more strict SSL option with certificates
 + 333481 Handle UCS-4 codepoints in decode and encode
 + 335329 Moved blocking timeout handling to outside try catch
 + 336668 policy supports cert validation
 + 336691 Possible wrong length returned by ChannelEndPoint.flush() in case of
   RandomAccessFileBuffer
 + 336781 If xml parser is not validating, turn off external dtd resolution
 + 336793 Tee data filled and flushed from endpoint
 + 337258 Scanner start and end cycle notification
 + 337268 Allow specifying alias of a certificate to be used by SSL connector
 + 337270 Shared Timer for session management
 + 337271 Flush SSL endpoint when dispatch thread held forever
 + 337678 Readded optional async connection mode for HttpClient
 + 337685 Work in progress on draft 6 websockets
 + 337746 Fixed Session deIdle recursion
 + 337784 Improve HashSessionManager for session migrations
 + 337878 Extra tests of security constraints
 + 337896 HttpExchange.timeout does not override HttpClient.timeout
 + 337898 set client HttpConnection max idle time from exchange timeout
 + 338035 Default acceptors 0.25*CPUs and improved selector/acceptor thread
   names.
 + 338068 Leaking ConstraintMappings on redeploy
 + 338092 ProxyServlet leaks memory
 + 338607 Removed managed attributes when context is stopped
 + 338819 Externally control Deployment Manager application lifecycle
 + JETTY-1304 Allow quoted boundaries in Multipart filter
 + JETTY-1317 More elegent handling of bad URIs in requests
 + JETTY-1331 Allow alternate XML configuration processors (eg spring)
 + JETTY-1333 HttpClient _timeout and _soTimeout is messed up
 + JETTY-1335 HttpClient's SelectConnector clean-up
 + JETTY-1337 Workname cannot contain '.'
 + JETTY-1338 Trust default SecureRandom seed

jetty-7.3.0.v20110203 - 03 February 2011
 + 296978 standardizing various Testing Util Classes to jetty-test-helper
 + 319178 test failure fix in jetty-util on windows
 + 320457 add SPNEGO support
 + 324505 Implement API login
 + 328872 Multi Jetty xml files not loading if directory is referenced in
   jetty.conf
 + 329746 client option to set just truststore and use strict ssl context
 + 331803 Update XML configuration files to use proper arguments for startup
   command in examples
 + 332179 Fixed formatting of negative dates
 + 332432 Scanner.java now always scanning the canonical form of File
 + 332517 Improved DefaultServlet debug
 + 332703 Cleanup context scope JNDI at stop
 + 332796 Annotations inheritance does not work with jetty7
 + 332799 100% CPU on redeploy session invalidation
 + 332937 Added Destroyable Dumpable interfaces and reworked dependent
   lifecycles, specially of JNDI
 + 333247 fix api compat issue in ConstraintSecurityHandler
 + 333415 wired up HttpInput.available and added test harnesses
 + 333481 Handle UTF-32 codepoints in decode and encode
 + 333608 tlds defined in web.xml are not picked up
 + 333679 Refactored jetty-jmx. Moved mbeans to modules
 + 333717 HttpExchange able to return local address used
 + 333771 System properties are not available inside XML configuration file by
   using the 'property' tag
 + 333875 Monitor public constructor
 + 333892 Improved JVM bug detection
 + 334062 It should be possible to embed in the jetty.home.bundle the ssl
   keystore files
 + 334229 javax-security needs to import the package javax.security.cert in its
   OSGi manifest
 + 334311 fix buffer reuse issue in CachedExchange
 + 335329 Stop SSL spin during handshake and renogotiate
 + 335361 Fixed 'jetty.sh check' to show current PID when JETTY_PID env.
   variable is set
 + 335641 Cleaned up dispatch handling to avoid key.interestOps==0 when
   undispatched
 + 335681 Improve ChannelEndPoint.close() to avoid spinning
 + 335836 Race when updating SelectChannelEndPoint._dispatched
 + JETTY-1259 NullPointerException in JDBCSessionIdManager when invalidating
   session (further update)

jetty-7.2.2.v20101205 - 05 December 2010
 + 328789 Clean up tmp files from test harnesses
 + 330188 Reject web-fragment.xml with same <name> as another already loaded
   one
 + 330208 Support new wording on servlet-mapping and filter-mapping merging
   from servlet3.0a
 + 330210 Improve performance of writing large bytes arrays
 + 330229 Jetty tries to parse META-INF/*.tld when jsp-api is not on classpath,
   causing DTD entity resoluton to fail
 + 330265 start.jar --stop kills --exec subprocess
 + 330417 Atomic PUT in PutFilter
 + 330419 Reloading webapp duplicates StandardDescriptorProcessor
 + 330686 OSGi: Make org.eclipse.jetty.jsp-2.1 a fragment of
   org.apache.jasper.glassfish
 + 330732 Removed System.err debugging
 + 330764 Command line properties passed to start.jar --exec
 + 331230 Fixed low thread warnings when acceptors>threadpool
 + 331461 Fixed idle timeout for unflushed HTTP/1.0
 + 331567 IPAccessHandlerTest failed on MacOS fix
 + 331703 Fixed failing OSGI test TestJettyOSGiBootWithJsp.java on MacOSX
 + JETTY-1297 Improved matching of vhosts so that a vhost match has priority
 + JETTY-1307 Check that JarFileResource directories end with /
 + JETTY-1308 327109 (re)fixed AJP handling of empty packets

jetty-7.2.1.v20101111 - 11 November 2010
 + 324679 Fixed dedection of write before static content
 + 328008 Handle update to Servlet Spec 3 Section 8.2.3.h.ii
 + 328199 Ensure blocking connectors always close socket
 + 328205 Improved SelectManager stopping
 + 328306 Serialization of FormAuthentication
 + 328332 Response.getContentType works with setHeader
 + 328523 Fixed overloaded setters in AppProvider
 + 328778 Improved javadoc for secure session cookies
 + 328782 allow per connection max idle time to be set
 + 328885 web overrides do not override
 + 328988 Idle saving of session values
 + 329180 Spin check for Selector to stop
 + 329410 Enforce XmlConfiguration properties as Map<String,String>
 + 329602 only clear ServletContext attributes on doStop
 + 329642 Concurrent modification exception in Deployment Manager
 + 329643 Improved deployment of resource collections
 + JETTY-748 Prevent race close of socket by old acceptor threads
 + JETTY-1291 Extract query parameters even if POST content consumed
 + JETTY-1295 Contexts mixed up when hot-deploying on virtual hosts
 + JETTY-1297 Make ServletContext.getContext(String) virtual host aware

jetty-6.1.26 - 10 November 2010
 + JETTY-748 Prevent race close of socket by old acceptor threads
 + JETTY-1239 HTAccessHandler [allow from 127.0.0.1] does not work
 + JETTY-1291 Extract query parameters even if POST content consumed
 + JETTY-1293 Avoid usage of String.split
 + JETTY-1296 Always clear changes list in selectManager

jetty-6.1.26.RC0 - 20 October 2010
 + 325468 Clean work webapp dir before unpack
 + 327109 Fixed AJP handling of empty packets
 + 327562 Implement all X-Forwarded headers in ProxyServlet
 + JETTY-547 Improved usage of shutdownOutput before close.
 + JETTY-912 add per exchange timeout
 + JETTY-1051 offer jetty.skip flag for maven plugin
 + JETTY-1096 exclude maven and plexus classes from jetty plugin
 + JETTY-1248 Infinite loop creating temp MultiPart files
 + JETTY-1264 Idle timer deadlock
 + JETTY-1271 Handle unavailable request
 + JETTY-1278 J2se6 SPI filter handling fix
 + JETTY-1283 Allow JSONPojoConvertorFactory to set fromJSON
 + JETTY-1287 rewrite handler thread safe issue resolved
 + JETTY-1288 info when atypical classloader set to WebAppContext
 + JETTY-1289 MRU cache for filter chains
 + JETTY-1292 close input streams after keystore.load()

jetty-7.2.0.v20101020 - 20 October 2010
 + 289540 added javadoc into distribution
 + 297154 add source distribution artifact
 + 323985 Xmlconfiguration pulls start.jar config properties
 + 324369 Improved handling of multiple versions of
   draft-ietf-hybi-thewebsocketprotocol
 + 326734 Configure Digest maxNonceAge with Security handler init param
 + 327109 Fixed AJP handling of empty packets
 + 327183 Allow better configurability of HttpClient for TLS/SSL
 + 327469 removed needless java6 dependencies
 + 327562 Implement all X-Forwarded headers in ProxyServlet
 + 327601 Multipart Filter handles quoted tokens
 + 327725 Nested ResourceCaches
 + 328199 Ensure blocking connectors always close socket
 + 328205 Improved SelectManager stopping
 + 328273 Added serializable to default user identity
 + JETTY-1288 Info statement when atypical classloader set on WebAppContext
 + JETTY-1289 LRU cache for filter chains

jetty-7.2.0.RC0 - 01 October 2010
 + 314087 Simplified SelectorManager
 + 319334 Concurrent, sharable ResourceCache
 + 319370 WebAppClassLoader.Context
 + 319444 Two nulls are appended to log statements from ContextHanler$Context
 + 320073 Reconsile configuration mechanism
 + 320112 Websocket in aggregate jars
 + 320264 Removed duplicate mime.property entries
 + 320457 Added rfc2045 support to B64Code
 + 321232 BasicAuthenticator ignores bad Authorization header.
 + 321307 HashSessionManager calls passivation listeners.
 + 321730 SelectChannelEndPoint prints to System.err
 + 321735 HttpClient onException called for buffer overflow.
 + 322448 Added jetty-dir.css for directory listings
 + 322575 NPE in HotSwapHandler if old handler null
 + 322683 RewriteHandler thread safety
 + 323196 org.mortbay properties to org.eclipse
 + 323435 MovedContextHandler permanent redirection
 + 323464 IPv6 localhost with no Host header
 + 324110 Merge async dispatch parameters
 + 324158 Durable download or Orbit jars
 + 324260 Jetty-6 continuations handle complete calls
 + 324359 illegal actions on AsyncContext should not change its state.
 + 324360 validate input on getResource since loop logic obscures subclass
   input validation.
 + 324369 Implement draft-ietf-hybi-thewebsocketprotocol-01
 + 324377 Allow dispatch of ServletRequest and ServletResponse
 + 324379 Change content type after getWriter
 + 324501 Fire RequestListener.requestDestroyed in last-to-first order.
 + 324601 Check session expiry on access
 + 324679 Allow filter to write before static content
 + 324811 NPE in Server.dump
 + 324812 restore WebAppContext constructor used by geronimo integration
 + 325072 include to DefaultServlet of missing file throws
   FileNotFoundException
 + 325105 websocket ondisconnect fixed
 + 325128 websocket send during onConnect
 + 325468 Clean work webapp dir before unpack
 + 326612 Handle X-Forwarded-Proto header
 + JETTY-912 added per exchange timeout api
 + JETTY-1063 Plugin problems with spaces in classpath resource references
 + JETTY-1245 Do not use direct buffers with NIO SSL
 + JETTY-1249 Apply max idle time to all connectors
 + JETTY-1250 Parallel start of HandlerCollection
 + JETTY-1256 annotation and jta jars from Orbit
 + JETTY-1259 NullPointerException in JDBCSessionIdManager when invalidating
   session
 + JETTY-1261 errant listener usage in StandardDescriptorProcessor
 + JETTY-1263 JDBCSessionIdManager table creation fails on Oracle
 + JETTY-1265 Reason field option in client response
 + JETTY-1266 Destroy sessions before filters/servlets
 + JETTY-1268 Form Auth saves POST data
 + JETTY-1269 Improve log multithreadedness
 + JETTY-1270 Websocket closed endp protection
 + JETTY-1271 handled unavailable exception
 + JETTY-1279 Make jetty-plus.xml enable plus features for all webapps by
   default
 + JETTY-1281 Create new session after authentication
 + JETTY-1283 JSONPojoConvertorFactory can turn off fromJSON
 + Added ignore to Logger interface
 + Fix jetty-plus.xml for new configuration names
 + Improved debug dump

jetty-7.1.6.v20100715
 + 319519 Warn about duplicate configuration files
 + 319655 Reset HEAD status
 + JETTY-1247 synchronize recylcing of SSL NIO buffers
 + JETTY-1248 fix parsing of bad multiparts
 + JETTY-1249 Apply max idle time to all connectors
 + JETTY-1251 Replace then close selector for JVM bugs

jetty-8.0.0.M1 - 12 July 2010
 + 306350 Ensure jars excluded by ordering are not scanned for annotations
 + JETTY-1224 Change jetty-8 merge rules for fragment descriptors and
   annotations
 + Ensure <absolute-ordering> in web.xml overrides relative <ordering> in
   fragments
 + Ensure empty <absolute-ordering> implies exclusion of all fragments
 + Ensure servlet-api jar class inheritance hierarchy is scanned

jetty-7.1.5.v20100705
 + 288194 Add blacklist/whitelist to ProxyServlet and ProxyHandler
 + 296570 EOFException for HttpExchange when HttpClient.stop called.
 + 311550 The WebAppProvider should allow setTempDirectory
 + 316449 Websocket disconnect fix
 + 316584 Exception on startup if temp path has spaces and extractWAR=false
 + 316597 Removed null check and fixed name in Resource#hrefEncodeURI
 + 316909 CNFE: org.xml.sax.SAXException on org.eclipse.jetty.osgi.boot start
   with jsp fragment
 + 316970 jetty.sh fails to find JETTY_HOME in standard directories
 + 316973 jetty.sh claims java installation is invalid
 + 316976 removed quotes of JAVA_OPTIONS in jetty.sh
 + 317007 Unable to run Jetty OSGi when
   -Dosgi.compatibility.bootdelegation=false
 + 317019 Date HTTP header not sent for HTTP/1.0 requests
 + 317231 Ability to configure jetty with a fragment bundle that contains
   etc/jetty.xml
 + 317759 Allow roles and constraints to be added after init
 + 317906 OPTIONS correctly handles TRACE
 + 318308 Correct quoting of unicode control characters
 + 318470 unboxing NPE protection in HttpConnection
 + 318551 Optional uncheck Printwriter
 + 319060 Support web-bundles that are not expanded (bundle is zipped)
 + JETTY-1237 Save local/remote address to be available after close
 + Update ecj to 3.6 Helios release drop

jetty-6.1.25 - 26 July 2010
 + 320264 Removed duplicate mime.property entries
 + JETTY-1212 Long content lengths
 + JETTY-1214 Avoid ISE when scavenging invalid session
 + JETTY-1223 DefaultServlet: NPE when setting relativeResourceBase and
   resourceBase is not set
 + JETTY-1226 javax.activation needs to be listed in the system classes
 + JETTY-1237 Remember local/remote details of endpoint
 + JETTY-1251 protected against closed selector
 + COMETD-112 if two threads create the same channel, then create events may
   occur after subscribe events
 + Jetty-6 is now in maintenance mode.

jetty-7.1.4.v20100610
 + 292326 Stop continuations if server is stopped.
 + 292814 Make QoSFilter and DoSFilter JMX manageable
 + 293222 Improve request log to handle/show asynchronous latency
 + 294212 Can not customize session cookie path
 + 295715 AbstractSessionManager decoupled from Context
 + 298551 SslSocketConnector does not need keystore stream
 + 301608 Deregister shutdown hooks
 + 302350 org.eclipse.jetty.server.NCSARequestLog is missing JavaDoc
 + 303661 jetty.sh failes if JETTY_HOME is not writeable
 + 304100 Better document JMX setup in jetty-jmx.xml
 + 305300 AsyncContext.start dispatches runnable
 + 314299 Create test harness for JDBCLoginService
 + 314581 Implement the Sec-Websocket handshake
 + 315190 CrossOriginFilter avoid headers not understood by WebSocket
 + 315687 included init script fails to test for JETTY_HOME as empty
 + 315715 Improved Cookie version handling. Server.setMaxCookieVersion
 + 315744 Fixed STOP.PORT and STOP.KEY in start.jar
 + 315748 Removed --fromDaemon from start.jar (replaced with --daemon)
 + 315925 Improved context xml configuration handling
 + 315995 Incorrect package name in system classes list
 + 316119 Fixed idleTimeout for SocketEndPoint
 + 316254 Implement @DeclareRoles
 + 316334 Breaking change on org.eclipse.jetty.client.HttpExchange
 + 316399 Debug output in MultiPartFilter
 + 316413 Restarting webapp for packed war fails
 + 316557 OSGi HttpService failure due to undeployed context handlers
 + JETTY-547 Delay close after shutdown until request read
 + JETTY-1231 Support context request log handler

jetty-7.1.3.v20100526
 + 296567 HttpClient RedirectListener handles new HttpDestination
 + 297598 JDBCLoginService uses hardcoded credential class
 + 305898 Websocket handles query string in URI
 + 307457 Exchanges are left unhandled when connection is lost
 + 313205 Unable to run test-jdbc-sessions tests
 + 314009 jetty.xml configuration file on command line
 + 314177 JSTL support is broken
 + 314459 support maven3 for builds

jetty-7.1.2.v20100523
 + 308866 Update test suite to JUnit4 - Module jetty-util
 + 312948 Recycle SSL crypto buffers
 + 313196 randomly allocate ports for session test.
 + 313278 Implement octet ranges in IPAccessHandler
 + 313336 secure websockets
 + 314009 updated README.txt
 + Update links to jetty website and wiki on test webapp

jetty-7.1.1.v20100517
 + 302344 Make the list of available contexts if root context is not configured
   optional
 + 304803 Remove TypeUtil Integer and Long caches
 + 306226 HttpClient should allow changing the keystore and truststore type
 + 308850 Update test suite to JUnit4 - Module jetty-annotations
 + 308853 Update test suite to JUnit4 - Module jetty-deploy
 + 308854 Update test suite to JUnit4 - Module jetty-http
 + 308855 Update test suite to JUnit4 - Module jetty-io
 + 308856 Update test suite to JUnit4 - Module jetty-jmx
 + 308857 Update test suite to JUnit4 - Module jetty-jndi
 + 308858 Update test suite to JUnit4 - Module jetty-plus
 + 308859 Update test suite to JUnit4 - Module jetty-policy
 + 308860 Update test suite to JUnit4 - Module jetty-rewrite
 + 308862 Update test suite to JUnit4 - Module jetty-server
 + 308863 Update test suite to JUnit4 - Module jetty-servlet
 + 308867 Update test suite to JUnit4 - Module jetty-webapp
 + 310918 Fixed write blocking for client HttpConnection
 + 312526 Protect shutdown thread initialization during shutdown

jetty-7.1.0 - 05 May 2010
 + 306353 fixed cross context dispatch to root context.
 + 311154 Added deprecated StringBuffer API for backwards compatibility
 + 311554 Protect shutdown thread from Server#doStop
 + 312243 Optimized timeout handling

jetty-7.1.0.RC1 - 05 May 2010
 + 286889 Allow System and Server classes to be set on Server instance and when
   applied to all webapps
 + 291448 SessionManager has isCheckingRemoteSessionIdEncoding
 + 296650 JETTY-1198 reset idle timeout on request body chunks
 + 297104 HTTP CONNECT does not work correct with SSL destinations
 + 306782 Close connection when expected 100 continues is not sent
 + 308848 Update test suite to JUnit4 - Module jetty-ajp
 + 308861 Update test suite to JUnit4 - Module jetty-security
 + 308864 Update test suite to JUnit4 - Module jetty-servlets
 + 308865 Update test suite to JUnit4 - Module jetty-start
 + 308868 Update test suite to JUnit4 - Module jetty-websocket
 + 308869 Update test suite to JUnit4 - Module jetty-xml
 + 309153 Hide extracted WEB-INF/lib when running a non-extracted war
 + 309369 Added WebSocketLoadTest
 + 309686 Fixed response buffers usage
 + 310094 Improved start.jar options handling and configs
 + 310382 NPE protection when WAR is not a file
 + 310562 SslSocketConnector fails to start if excludeCipherSuites is set
 + 310634 Get the localport when opening a server socket.
 + 310703 Update test suite to JUnit4 - Module tests/test-integration
 + 310918 Synchronize content exchange
 + 311154 Use Appendable in preference to StringBuilder/StringBuffer in APIs
 + 311362 Optional org.eclipse.jetty.util.log.stderr.SOURCE
 + JETTY-1030 Improve jetty.sh script
 + JETTY-1142 Replace Set-Cookies with same name

jetty-7.1.0.RC0 - 27 April 2010
 + 294563 Websocket client connection
 + 297104 Improve handling of CONNECT method
 + 306349 ProxyServlet does not work unless deployed at /
 + 307294 Add AbstractLifeCycle.AbstractLifeCycleListener implementation
 + 307847 Fixed combining mime type parameters
 + 307898 Handle large/async websocket messages
 + 308009 ObjectMBean incorrectly casts getTargetException() to Exception
 + 308420 convert jetty-plus.xml to use DeploymentManager
 + 308925 Protect the test webapp from remote access
 + 309466 Removed synchronization from StdErrLog
 + 309765 Added JSP module
 + 310051 _configurationClasses now defaults to null in WebAppContext
 + 310094 Improved start.jar usage and config files
 + 310431 Default ErrorHandler as server Bean
 + 310467 Allow SocketConnector to create generic Connection objects
 + 310603 Make Logger interface consistent
 + 310605 Make a clean room implementation of the JSP logger bridge
 + JETTY-903 Stop both caches
 + JETTY-1200 SSL NIO Endpoint wraps non NIO buffers
 + JETTY-1202 Use platform default algorithm for SecureRandom
 + JETTY-1212 handle long content lengths
 + JETTY-1214 avoid ISE when scavenging invalid session
 + Add AnnotationConfiguration to jetty-plus.xml
 + Add NPE protection to ContainerInitializerConfiguration
 + Fix jetty-plus.xml reference to addLifeCycle
 + Merged 7.0.2.v20100331
 + Temporarily remove jetty-osgi module to clarify jsp version compatibility

jetty-7.0.2.v20100331 - 31 March 2010
 + 297552 Don't call Continuation timeouts from acceptor tick
 + 298236 Additional unit tests for jetty-client
 + 306782 httpbis interpretation of 100 continues. Body never skipped
 + 306783 NPE in StdErrLog when Throwable is null
 + 306840 Suppress content-length in requests with no content
 + 306880 Support for UPGRADE in HttpClient
 + 306884 Suspend with timeout <=0 never expires
 + 307589 updated servlet 3.0 continuations for final API
 + Allow Configuration array to be set on Server instance for all web apps
 + Ensure webapps with no WEB-INF don't scan WEB-INF/lib
 + Take excess logging statements out of startup

jetty-6.1.24 - 21 April 2010
 + 308925 Protect the test webapp from remote access
 + JETTY-903 Stop both caches
 + JETTY-1198 reset idle timeout on request body chunks
 + JETTY-1200 SSL NIO Endpoint wraps non NIO buffers
 + JETTY-1211 SetUID loadlibrary name and debug
 + COMETD-100 ClientImpl logs "null" as clientId
 + COMETD-107 Reloading the application with reload extension does not fire
   /meta/connect handlers until long poll timeout expires
 + COMETD-99 ClientImpl logs exceptions in listeners with "debug" level
 + Upgraded to cometd 1.1.1 client

jetty-6.1.23 - 02 April 2010
 + 292800 ContextDeployer - recursive setting is undone by FilenameFilter
 + 296569 removeLifeCycleListener() has no effect
 + 300178 HttpClients opens too many connections that are immediately closed
 + 304658 Inconsistent Expires date format in Set-Cookie headers with maxAge=0
 + 304698 org.eclipse.jetty.http.HttpFields$DateGenerator.formatCookieDate()
   uses wrong (?) date format
 + 306331 Session manager is kept after call to doScope
 + 306840 suppress content-length in requests without content
 + JETTY-875 Allow setting of advice field in response to Handshake
 + JETTY-983 Range handling cleanup
 + JETTY-1133 Handle multiple URL ; parameters
 + JETTY-1134 BayeuxClient: Connect msg should be sent as array
 + JETTY-1149 transient should be volatile in AbstractLifeCycle
 + JETTY-1153 System property for UrlEncoded charset
 + JETTY-1155 HttpConnection.close notifies HttpExchange
 + JETTY-1156 SSL blocking close with JVM Bug busy key fix
 + JETTY-1157 Don't hold array passed in write(byte[])
 + JETTY-1158 NPE in StdErrLog when Throwable is null
 + JETTY-1161 An Extension that measures round-trip delay for cometd messages.
 + JETTY-1162 Add support for async/sync message delivery to BayeuxClient
 + JETTY-1163 AJP13 forces 8859-1 encoding
 + JETTY-1168 Don't hold sessionIdManager lock when invalidating sessions
 + JETTY-1170 NPE on client when server-side extension returns null
 + JETTY-1174 Close rather than finish Gzipstreams to avoid JVM leak
 + JETTY-1175 NPE in TimesyncExtension
 + JETTY-1176 NPE in StatisticsExtension if client is null
 + JETTY-1177 Allow error handler to set cacheControl
 + JETTY-1178 Make continuation servlet to log the incoming JSON in case of
   parsing errors
 + JETTY-1180 Extension methods are wrongly called
 + JETTY-1182 COMETD-76 do not lock client while sending messages.
 + JETTY-1183 AcknowledgedMessagesClientExtension does not handle correctly
   message resend when client long polls again
 + JETTY-1186 Better document JMX setup in jetty-jmx.xml
 + JETTY-1188 Null old jobs in QueuedThreadPool
 + JETTY-1191 Limit size of ChannelId cache
 + JETTY-1192 Fixed Digested POST and HttpExchange onRetry
 + JETTY-1193 Exception details are lost in AbstractCometdServlet.getMessages
 + JETTY-1195 Coalesce buffers in ChannelEndPoint.flush()
 + JETTY-1196 Enable TCP_NODELAY by default in client connectors
 + JETTY-1197 SetUID module test fails when using Java 1.6 to build
 + JETTY-1199 FindBugs cleanups
 + JETTY-1202 Use platfrom default algorithm for SecureRandom
 + JETTY-1205 Memory leak in browser-to-client mapping
 + JETTY-1207 NPE protection in FormAuthenticator
 + COMETD-28 Improved concurrency usage in Bayeux and channel handling
 + COMETD-46 reset ContentExchange content on resend
 + COMETD-58 Extension.rcv() return null causes NPE in
   AbstractBayeux.PublishHandler.publish
 + COMETD-59 AcknowledgeExtension does not handle null channel in Message
 + COMETD-62 Delay add listeners until after client construction
 + JSON parses NaN as null
 + Remove references to old content in HttpClient client tests for www.sun.com
 + Updated JSP to 2.1.v20091210

jetty-7.0.2.RC0
 + 290765 Reset input for HttpExchange retry.
 + 292799 WebAppDeployer - start a started context?
 + 292800 ContextDeployer - recursive setting is undone by FilenameFilter
 + 294799 when configuring a webapp, don't look for WEB-INF/jetty6-web.xml
 + 296569 removeLifeCycleListener() has no effect
 + 296765 JMX Connector Server and ShutdownThread
 + 297421 Hide server/system classes from WebAppClassLoader.getResources
 + 297783 Handle HEAD reponses in HttpClient
 + 298144 Unit test for jetty-client connecting to a server that uses Basic
   Auth
 + 298145 Reorganized test harness to separate the HTTP PUT and HTTP GET test
   URLs
 + 298234 Unit test for jetty-client handling different HTTP error codes
 + 298667 DeploymentManager uses ContextProvider and WebAppProvider
 + 299455 Enum support in JSONPojoConvertor
 + 300178 HttpClients opens too many connections that are immediately closed
 + 300733 Jars from lib/ext are not visible for my web application
 + 300933 AbstractConnector uses concurrent objects for stats
 + 301089 Improve statistics available in StatisticsHandler and
   AbstractConnector
 + 302018 Improve statistics available in AbstractSessionHandler
 + 302198 Rename HttpClient authorization classes to Authentication
 + 302244 invalid configuration boolean conversion in FormAuthenticator
 + 302246 redirect loop using form authenticator
 + 302556 CrossOriginFilter does not work correctly when
   Access-Control-Request-Headers header is not present
 + 302669 WebInfConfiguration.unpack() unpacks WEB-INF/* from a
   ResourceCollection, breaking JSP reloading with ResourceCollections
 + 303526 Added include cyphers
 + 304307 Handle ;jsessionid in FROM Auth
 + 304532 Skip some tests on IBM JVMs until resolved
 + 304658 Inconsistent Expires date format in Set-Cookie headers with maxAge=0
 + 304698 org.eclipse.jetty.http.HttpFields$DateGenerator.formatCookieDate()
   uses wrong (?) date format
 + 304781 Reset HttpExchange timeout on slow request content.
 + 304801 SSL connections FULL fix
 + 305997 Coalesce buffers in ChannelEndPoint.flush()
 + 306028 Enable TCP_NODELAY by default in client connectors
 + 306330 Flush filter chain cache after Invoker servlet
 + 306331 Session manager is kept after call to doScope
 + JETTY-776 Make new session-tests module to concentrate all reusable session
   clustering test code
 + JETTY-910 Allow request listeners to access session
 + JETTY-983 Range handling cleanup
 + JETTY-1133 Handle multiple URL ; parameters
 + JETTY-1151 JETTY-1098 allow UTF-8 with 0 carry bits
 + JETTY-1153 System property for UrlEncoded charset
 + JETTY-1155 HttpConnection.close notifies HttpExchange
 + JETTY-1156 SSL blocking close with JVM Bug busy key fix
 + JETTY-1157 Don't hold array passed in write(byte[])
 + JETTY-1163 AJP13 forces 8859-1 encoding
 + JETTY-1174 Close rather than finish Gzipstreams to avoid JVM leak
 + JETTY-1177 Allow error handler to set cacheControl
 + JETTY-1179 Persistant session tables created on MySQL use wrong datatype
 + JETTY-1184 shrink thread pool even with frequent small jobs
 + JETTY-1192 Fixed Digested POST
 + JETTY-1199 FindBugs cleanups
 + Added IPAccessHandler
 + COMETD-46 reset ContentExchange response content on resend
 + JSON parses NaN as null
 + Updated Servlet3Continuation to final 3.0.20100224

jetty-8.0.0.M0 - 28 February 2010
 + Merged 7.0.1.v20091116
 + Updated servlet 3.0 spec 20100224
 + Updated to cometd 1.0.1

jetty-7.0.1.v20091125 - 25 November 2009
 + 274251 DefaultServlet supports exact match mode.
 + 288401 HttpExchange.cancel() Method Unimplemented
 + 289027 deobfuscate HttpClient SSL passwords
 + 289265 Test harness for async input
 + 289959 Improved ContextDeployer configuration
 + 289960 start.jar assumes command line args are configs
 + 291019 Fix default DEBUG option; "-D.DEBUG=true" now works
 + 291340 Race condition in onException() notifications
 + 291543 make bin/*.sh scripts executable in distribution
 + 291589 Update jetty-rewrite demo
 + 292546 Proactively enforce HttpClient idle timeout
 + 292642 Fix errors in embedded Jetty examples
 + 292825 Continuations ISE rather than ignore bad transitions
 + 293222 Improved StatisticsHandler for async
 + 293506 Unable to use jconsole with Jetty when running with security manager
 + 293557 Add "jad" mime mapping
 + 294154 Patched jetty-osgi
 + 294224 HttpClient timeout setting has no effect when connecting to host
 + 294345 Support for HTTP/301 + HTTP/302 response codes
 + 294563 Initial websocket implementation
 + 295421 Cannot reset() a newly created HttpExchange: IllegalStateException 0
   => 0
 + 295562 CrossOriginFilter does not work with default values in Chrome and
   Safari
 + JETTY-937 More JVM bug work arounds. Insert pause if all else fails
 + JETTY-983 Send content-length with multipart ranges
 + JETTY-1114 unsynchronised WebAppClassloader.getResource(String)
 + JETTY-1121 Merge Multipart query parameters
 + JETTY-1122 Handle multi-byte utf that causes buffer overflow
 + JETTY-1125 TransparentProxy incorrectly configured for test webapp
 + JETTY-1129 Filter control characters out of StdErrLog
 + JETTY-1135 Handle connection closed before accepted during JVM bug work
   around
 + JETTY-1144 fixed multi-byte character overflow
 + JETTY-1148 Reset partially read request reader.
 + COMETD-34 Support Baeyux MBean
 + CQ-3581 jetty OSGi contribution
 + CVE-2009-3555 Prevent SSL renegotiate for SSL vulnerability
 + Fixed client abort asocciation
 + Fixed XSS issue in CookieDump demo servlet.
 + Improved start.jar usage text for properties
 + Moved centralized logging and verifier back to sandbox
 + Promoted Jetty Centralized Logging from Sandbox
 + Promoted Jetty WebApp Verifier from Sandbox
 + Refactored continuation test harnessess

jetty-7.0.0.v20091005 - 05 October 2009
 + 291340 Race condition in onException() notifications

jetty-6.1.21 - 22 September 2009
 + 282543 HttpClient SSL buffer size fix
 + 288055 fix jetty-client for failed listener state machine
 + 288153 reset exchange when resending
 + 288182 PUT request fails during retry
 + JETTY-719 Document state machine of jetty http client
 + JETTY-933 State == HEADER in client
 + JETTY-936 Improved servlet matching and optimized
 + JETTY-1038 ChannelId.isParentOf returns the wrong result
 + JETTY-1061 Catch exceptions from cometd listeners
 + JETTY-1072 maven plugin handles context path not as documented
 + JETTY-1080 modified previous fix for windows
 + JETTY-1084 HEAD command not setting content-type in response under certain
   circumstances
 + JETTY-1090 resolve inifinte loop condition for webdav listener
 + JETTY-1092 MultiPartFilter can be pushed into infinite loop
 + JETTY-1093 Request.toString throws exception when size exceeds 4k
 + JETTY-1098 Default form encoding is UTF8
 + JETTY-1099 Improve cookie handling in BayeuxClient
 + JETTY-1100 extend setuid feature to allow setting max open file descriptors
 + JETTY-1102 Wrong usage of deliver() in private chat messages
 + JETTY-1108 SSL EOF detection
 + JETTY-1109 Improper handling of cookies in Terracotta tests
 + JETTY-1112 Response fails if header exceeds buffer size
 + JETTY-1113 IllegalStateException when adding servlet filters
   programmatically
 + JETTY-1114 Unsynchronize webapp classloader getResource
 + Fix DefaultServletTest for windows
 + Include tmp directory sweeper in build
 + Streamline jetty-jboss build, update sar to QueuedThreadPool
 + Update Jetty implementation of com.sun.net.httpserver.*

jetty-7.0.0.RC6 - 21 September 2009
 + 280723 Add non blocking statistics handler
 + 282543 HttpClient SSL buffer size fix
 + 283357 org.eclipse.jetty.server.HttpConnectionTest exceptions
 + 288055 jetty-client fails to resolve failed resolution attempts correctly
 + 288153 jetty-client resend doesn't reset exchange
 + 288182 PUT request fails during retry
 + 288466 LocalConnector is not thread safe
 + 288514 AbstractConnector does not handle InterruptedExceptions on shutdown
 + 288772 Failure to connect does not set status to EXCEPTED
 + 289146 formalize reload policy functionality
 + 289156 jetty-client: no longer throw runtime exception for bad authn details
 + 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
 + 289958 StatisticsServlet incorrectly adds StatisticsHandler
 + 289960 start.jar assumes command line args are configs
 + 290081 Eager consume LF after CR
 + 290761 HttpExchange isDone handles intercepted events.
 + JETTY-719 Document state machine of jetty http client
 + JETTY-780 CNFE during startup of webapp with spring-context >= 2.5.1
 + JETTY-936 274251 Improved servlet matching and optimized'
 + JETTY-1080 modify previous fix to work on windows
 + JETTY-1084 HEAD command not setting content-type in response under certain
   circumstances
 + JETTY-1086 Use UncheckedPrintWriter & cleaned up HttpStatus.Code usage
 + JETTY-1090 resolve potential infinite loop with webdav listener
 + JETTY-1092 MultiPartFilter can be pushed into infinite loop
 + JETTY-1093 Request.toString throws exception when size exceeds 4k
 + JETTY-1098 Default form encoding is UTF8
 + JETTY-1101 Updated servlet3 continuation constructor
 + JETTY-1105 Custom error pages aren't working
 + JETTY-1108 SSL EOF detection
 + JETTY-1112 Response fails if header exceeds buffer size
 + JETTY-1113 IllegalStateException when adding servlet filters
   programmatically
 + Copy VERSION.txt to distro
 + Fixed XSS issue in CookieDump demo servlet.
 + Remove printlns from jetty-plus
 + Tweak DefaultServletTest under windows

jetty-6.1.20 - 27 August 2009
 + 283513 Check endp.isOpen when blocking read
 + 283818 fixed merge of forward parameters
 + 285006 Fixed NPE in AbstractConnector during shutdown
 + 286535 ContentExchange status code
 + 286911 Clean out cache when recycling HTTP fields
 + JETTY-838 Don't log and throw
 + JETTY-874 Better error on full header.
 + JETTY-960 Support ldaps
 + JETTY-1046 maven-jetty-jspc-plugin keepSources takes affect only in
   packageRoot
 + JETTY-1057 XSS error page
 + JETTY-1065 Add RedirectRegexRule to provide match/replace/group redirect
   support
 + JETTY-1066 Send 400 error for request URI parse exceptions
 + JETTY-1068 Avoid busy flush of async SSL
 + JETTY-1069 Adjust Bayeux Java client backoff algorithm
 + JETTY-1070 Java Bayeux Client not sending /meta/disconnect on stop
 + JETTY-1074 JMX thread manipulation
 + JETTY-1077 HashSSORealm shares Principals between UserRealms
 + JETTY-1078 Automatic JSON Pojo Conversion
 + JETTY-1079 ResourceCollection.toString() can throw IllegalStateException
 + JETTY-1080 Ignore files that would be extracted outside the destination
   directory when unpacking WARs
 + JETTY-1081 Handle null content type in GzipFilter
 + JETTY-1084 Disable GzipFilter for HEAD requests
 + JETTY-1085 Allow url sessionID if cookie invalid
 + JETTY-1086 Added UncheckedPrintWriter to avoid ignored EOFs
 + JETTY-1087 Chunked SSL non blocking input
 + JETTY-1098 Upgrade jsp to SJSAS-9_1_1-B60F-07_Jan_2009
 + Added DebugHandler
 + Added getSubscriptions to cometd client
 + Clarified cometd interval timeout and allow per client intervals
 + COMETD-7 max latency config for lazy messages
 + Made unSubscribeAll public on cometd client
 + Removed clearing of queue in unSubscribeAll for cometd client
 + Update Main.main method to call setWar
 + Update test-jndi and test-annotation examples for atomikos 3.5.5

jetty-7.0.0.RC5 - 27 August 2009
 + 286911 Clean out cache when recycling HTTP fields
 + 287496 Use start.ini always and added --exec
 + 287632 FilterContinuations for blocking jetty6
 + JETTY-838 Don't log and throw
 + JETTY-874 Better header full warnings
 + JETTY-960 Support for ldaps
 + JETTY-1081 Handle null content type in GzipFilter
 + JETTY-1084 Disable GzipFilter for HEAD requests
 + JETTY-1085 Allow url sessionID if cookie invalid
 + JETTY-1086 Added UncheckedPrintWriter to avoid ignored EOFs
 + JETTY-1087 Chunked SSL non blocking input

jetty-6.1.19 - 01 July 2009
 + JETTY-799 shell script for jetty on cygwin
 + JETTY-863 Non blocking stats handler
 + JETTY-937 Further Improvements for sun JVM selector bugs
 + JETTY-970 BayeuxLoadGenerator latency handling
 + JETTY-1011 Grizzly uses queued thread pool
 + JETTY-1028 jetty:run plugin should check for the web.xml from the overlays
   if not found in src/main/webapp/WEB-INF/
 + JETTY-1029 Handle quoted cookie paths
 + JETTY-1031 Handle large pipeline
 + JETTY-1033 jetty-plus compiled with jdk1.5
 + JETTY-1034 Cookie parsing
 + JETTY-1037 reimplemented channel doRemove
 + JETTY-1040 jetty.client.HttpConnection does not handle non IOExceptions
 + JETTY-1042 Avoid cookie reuse on shared connection
 + JETTY-1044 add commons-daemon support as contrib/start-daemon module
 + JETTY-1045 Handle the case where request.PathInfo() should be "/*"
 + JETTY-1046 maven-jetty-jspc-plugin keepSources takes affect only in
   packageRoot
 + JETTY-1047 Cometd client can grow cookie headers
 + JETTY-1048 Default servlet can handle partially filtered large static
   content
 + JETTY-1049 Improved transparent proxy usability
 + JETTY-1054 Avoid double deploys
 + JETTY-1055 Cookie quoting
 + JETTY-1057 Error page stack trace XSS
 + JETTY-1058 Handle trailing / with aliases on
 + JETTY-1062 Don't filter cometd message without data

jetty-7.0.0.RC4 - 18 August 2009
 + 279820 Fixed HotSwapHandler
 + 285891 SessionAuthentication is serializable
 + 286185 Implement ability for JSON implementation to automatically register
   convertors
 + 286535 ContentExchange status code
 + JETTY-1057 XSS error page
 + JETTY-1079 ResourceCollection.toString
 + JETTY-1080 Ignore files that would be extracted outside the destination
   directory when unpacking WARs
 + Added discoverable start options

jetty-7.0.0.RC3 - 07 August 2009
 + 277403 remove system properties
 + 282447 concurrent destinations in HttpClient
 + 283172 fix Windows build, broken on directory creation with the
   DefaultServlet
 + 283375 additional error-checking on SSL connector passwords to prevent NPE
 + 283513 Check endp.isOpen when blocking read
 + 285697 extract parameters if dispatch has query
 + JETTY-1074 JMX thread manipulation
 + Improved deferred authentication handling

jetty-7.0.0.RC2 - 29 June 2009
 + 283375 improved extensibility of SSL connectors
 + 283818 fixed merge of forward parameters
 + 283844 Webapp / TLD errors are not clear
 + 284475 update jetty.sh for new OPTIONS syntax
 + 284510 Enhance jetty-start for diagnosis and unit testing
 + 284981 Implement a cross-origin filter
 + 285006 fix AbstractConnector NPE during shutdown.
 + Added DebugHandler
 + Added JavaUtilLog for Jetty logging to java.util.logging framework
 + backport jetty-8 annotation parsing to jetty-7
 + Disassociate method on IdentityService
 + Improved handling of overlays and resourceCollections

jetty-7.0.0.RC1 - 15 June 2009
 + 283344 Startup on windows is broken
 + JETTY-1066 283357 400 response for bad URIs
 + JETTY-1068 Avoid busy flush of async SSL

jetty-7.0.0.RC0 - 08 June 2009
 + 271535 Adding integration tests, and enabling RFC2616 tests
 + 280843 Buffer pool uses isHeader
 + 281287 Handle date headers before 1 Jan 1970
 + 282807 Better handling of 100 continues if response committed.
 + JETTY-967 create standalone build for PKCS12Import at codehaus
 + JETTY-1056 update jetty-ant module for Jetty 7 at codehaus trunk
 + JETTY-1058 Handle trailing / with aliases

jetty-7.0.0.M4 - 01 June 2009
 + 281059 NPE in QTP with debug on
 + JETTY-799 shell script for jetty on cygwin
 + JETTY-1031 Handle large pipeline
 + JETTY-1034 Cookie parsing
 + JETTY-1042 Prevent cookie leak between shared connection
 + JETTY-1048 Fix for large partially filtered static content
 + JETTY-1049 Improved transparent proxy usability
 + JETTY-1054 Avoid double deploys
 + JETTY-1055 Cookie quoting
 + JETTY-1057 Error page stack trace XSS

jetty-7.0.0.M3 - 20 June 2009
 + 274251 Allow dispatch to welcome files that are servlets (configurable)
 + 276545 Quoted cookie paths
 + 277403 Cleanup system property usage.
 + 277798 Denial of Service Filter
 + 279725 Support 100 and 102 expectations
 + 280707 client.HttpConnection does not catch and handle non-IOExceptions
 + 281470 Handle the case where request.PathInfo() should be "/*"
 + Added ContinuationThrowable
 + added WebAppContext.setConfigurationDiscovered for servlet 3.0 features
 + fixed race with expired async listeners
 + Numerous cleanups from static code analysis
 + Portable continuations for jetty6 and servlet3
 + Refactored AbstractBuffers to HttpBuffers for performance
 + refactored configuration mechanism
 + Refactored continuations to only support response wrapping

jetty-7.0.0.M2 - 18 May 2009
 + 273767 Update to use geronimo annotations spec 1.1.1
 + 275396 Added ScopedHandler to set servlet scope before security handler
 + JETTY-937 Work around Sun JVM bugs
 + JETTY-941 Linux chkconfig hint
 + JETTY-959 CGI servlet doesn't kill the CGI in case the client disconnects
 + JETTY-980 Fixed ResourceHandler ? handling, and bad URI creation in listings
 + JETTY-996 Make start-stop-daemon optional
 + JETTY-1003 java.lang.IllegalArgumentException: timeout can't be negative
 + JETTY-1004 CERT VU#402580 Canonical path handling includes ? in path segment
 + JETTY-1013 MySql Error with JDBCUserRealm
 + JETTY-1014 Enable start-stop-daemon by default on jetty.sh
   (START_STOP_DAEMON=1)
 + JETTY-1015 Reduce BayeuxClient and HttpClient lock contention
 + JETTY-1020 ZipException in org.mortbay.jetty.webapp.TagLibConfiguration
   prevents all contexts from being loaded

jetty-6.1.18 - 16 May 2009
 + JETTY-937 Improved work around sun JVM selector bugs
 + JETTY-1004 CERT VU#402580 Canonical path handling includes ? in path segment
 + JETTY-1008 ContinuationBayeux destroy is called
 + JETTY-1013 MySql Error with JDBCUserRealm
 + JETTY-1014 Enable start-stop-daemon by default on jetty.sh
   (START_STOP_DAEMON=1)
 + JETTY-1015 Reduce BayeuxClient and HttpClient lock contention
 + JETTY-1017 HttpDestination has too coarse locking
 + JETTY-1018 Denial of Service Filter
 + JETTY-1020 ZipException in org.mortbay.jetty.webapp.TagLibConfiguration
   prevents all contexts from being loaded
 + JETTY-1022 Removed several 1.5isms

jetty-5.1.15 - 18 May 2009
 + JETTY-418 synchronized load class
 + JETTY-1004 CERT VU402580 Canonical path handling includes ? in path segment
 + Fixes for CERT438616-CERT237888-CERT21284

jetty-6.1.17 - 30 April 2009
 + JETTY-936 Make optional dispatching to welcome files as servlets
 + JETTY-937 Work around sun JVM selector bugs
 + JETTY-941 Linux chkconfig hint
 + JETTY-957 Reduce hardcoded versions
 + JETTY-980 Security / Directory Listing XSS present
 + JETTY-982 Make test-jaas-webapp run with jetty:run
 + JETTY-983 Default Servlet sets accept-ranges for cached/gzipped content
 + JETTY-985 Allow listeners to implement both interfaces
 + JETTY-988 X-Forwarded-Host has precedence over X-Forwarded-Server
 + JETTY-989 GzipFilter handles addHeader
 + JETTY-990 Async HttpClient connect
 + JETTY-992 URIUtil.encodePath encodes markup characters
 + JETTY-996 Make start-stop-daemon optional
 + JETTY-997 Remove jpackage-utils dependency on rpm install
 + JETTY-1000 Avoided needless 1.5 dependency
 + JETTY-1002 cometd-api to 1.0.beta8
 + JETTY-1003 java.lang.IllegalArgumentException: timeout can't be negative
 + JETTY-1004 CERT VU#402580 Canonical path handling includes ? in path segment
 + JETTY-1006 Resume meta connect on all XD messages

jetty-7.0.0.M1 - 22 April 2009
 + 271258 FORM Authentication dispatch handling avoids caching
 + 271536 Add support to IO for quietly closing Readers / Writers
 + 273011 JETTY-980 JETTY-992 Security / Directory Listing XSS present
 + 273101 Fix DefaultServletTest XSS test case
 + 273153 Test for Nested references in DispatchServlet
 + JETTY-695 Handler dump
 + JETTY-983 DefaultServlet generates accept-ranges for cached/gzip content
 + Initial support for LoginService.logout
 + Removed HTTPConnection specifics from connection dispatching
 + Reworked authentication for deferred authentication
 + Reworked JMX for new layout

jetty-6.1.16 - 01 April 2009
 + JETTY-702 Create "jetty-tasks.xml" for the Ant plugin
 + JETTY-899 Standardize location for configuration files which go into etc
 + JETTY-936 Allow dispatch to welcome files that are servlets
 + JETTY-944 Lazy messages don't prevent long polls waiting
 + JETTY-946 Redeploys with maven jetty plugin of webapps with overlays don't
   work
 + JETTY-947 Exception stops terracotta session scavenger
 + JETTY-948 ConcurrentModificationException in TerracottaSessionManager
   scavenger
 + JETTY-949 Move cometd source to cometd.org project
 + JETTY-953 SSL keystore file input stream is not being closed directly
 + JETTY-956 SslSelectChannelConnector - password should be the default value
   of keyPassword if not specified
 + JETTY-959 CGI servlet doesn't kill the CGI in case the client disconnects
 + JETTY-964 Typo in Jetty 6.1.15 Manifest - Bundle-RequiredExcutionEnvironment
 + JETTY-972 Move cometd code back from cometd.org project (temporarily)
 + JETTY-973 Deliver same message to a collection of cometd Clients

jetty-7.0.0.M0 - 27 March 2009
 + JETTY-496 Support inetd/xinetd through use of System.inheritedChannel()
 + JETTY-540 Merged 3.0 Public Review changes
 + JETTY-567 Delay in initial TLS Handshake With FireFox 3 beta5 and
   SslSelectChannelConnector
 + JETTY-600 Automated tests of WADI integration + upgrade to WADI 2.0
 + JETTY-691 System.getProperty() calls ... wrap them in doPrivileged
 + JETTY-713 Expose additional AbstractConnector methods via MBean
 + JETTY-731 Completed DeliverListener for cometd
 + JETTY-748 RandomAccessFileBuffer for hadoop optimization
 + JETTY-749 Improved ArrayQueue
 + JETTY-765 ensure stop mojo works for all execution phases
 + JETTY-774 Improved caching of mime types with charsets
 + JETTY-775 AbstractSessionTest remove timing related test
 + JETTY-778 handle granular windows timer in lifecycle test
 + JETTY-779 Fixed line feed in request log
 + JETTY-781 Add "mvn jetty:deploy-war" for deploying a pre-assembled war
 + JETTY-782 Implement interval advice for BayeuxClient
 + JETTY-783 Update jetty self-signed certificate
 + JETTY-784 TerracottaSessionManager leaks sessions scavenged in other nodes
 + JETTY-786 Allow DataSourceUserRealm to create tables
 + JETTY-787 Handle MSIE7 mixed encoding
 + JETTY-788 Fix jotm for scoped jndi naming
 + JETTY-790 WaitingContinuations can change mutex if not pending
 + JETTY-792 TerracottaSessionManager does not unlock new session with
   requested id
 + JETTY-793 Fixed DataCache millisecond rounding
 + JETTY-794 WADI integration tests fail intermittently.
 + JETTY-795 NullPointerException in SocketConnector.java
 + JETTY-801 Bring back 2 arg EnvEntry constructor
 + JETTY-802 Modify the default error pages to make association with Jetty
   clearer
 + JETTY-804 HttpClient timeout does not always work
 + JETTY-805 Fix jetty-jaas.xml for new UserRealm package
 + JETTY-806 Timeout related Deadlocks in HTTP Client
 + JETTY-807 HttpTester to handle charsets
 + JETTY-808 cometd client demo run.sh
 + JETTY-809 Need a way to customize WEB-INF/lib file extensions that are added
   to the classpath
 + JETTY-811 Allow configuration of system properties for the maven plugin
   using a file
 + JETTY-813 Simplify NCSARequestLog.java
 + JETTY-814 Add org.eclipse.jetty.client.Address.toString()
 + JETTY-816 Implement reconnect on java bayeux client
 + JETTY-817 Aborted SSL connections may cause jetty to hang with full cpu
 + JETTY-818 Support javax.servlet.request.ssl_session_id
 + JETTY-821 Allow lazy loading of persistent sessions
 + JETTY-822 Commit when autocommit=true causes error with mysql
 + JETTY-823 Extend start.config profiles
 + JETTY-824 Access to inbound byte statistics
 + JETTY-825 URL decoding of spaces (+) fails for encoding not utf8
 + JETTY-830 Add ability to reserve connections on http client
 + JETTY-831 Add ability to stop java bayeux client
 + JETTY-832 More UrlDecoded handling in relation to JETTY-825
 + JETTY-834 Configure DTD does not allow <Map> children
 + JETTY-837 Response headers set via filter are ignored for static resources
 + JETTY-840 add default mime types to *.htc and *.pps
 + JETTY-841 Duplicate messages when sending private message to yourself with
   cometd chat demo
 + JETTY-842 NPE in jetty client when no path component
 + JETTY-843 META-INF/MANIFEST.MF is not present in unpacked webapp
 + JETTY-844 Replace reflection with direct invocation in Slf4jLog
 + JETTY-848 Temporary folder not fully cleanup after stop (via Sweeper)
 + JETTY-854 JNDI scope does not work with applications in a .war
 + JETTY-859 MultiPartFilter ignores the query string parameters
 + JETTY-861 switched buffer pools to ThreadLocal implementation
 + JETTY-862 EncodedHttpURI ignores given encoding in constructor
 + JETTY-866 jetty-client test case fix
 + JETTY-869 NCSARequestLog locale config
 + JETTY-870 NullPointerException in Response when performing redirect to wrong
   relative URL
 + JETTY-871 jetty-client expires() NPE race condition fixed
 + JETTY-876 Added new BlockingArrayQueue and new QueuedThreadPool
 + JETTY-890 merge jaspi branch to trunk
 + JETTY-894 Add android .apk to mime types
 + JETTY-897 Remove swing dependency in GzipFilter
 + JETTY-898 Allow jetty debs to start with custom java args provided by users
 + JETTY-899 Standardize location and build process for configuration files
   which go into etc
 + JETTY-909 Update useragents cache
 + JETTY-917 Change for JETTY-811 breaks systemProperties config parameter in
   maven-jetty-plugin
 + JETTY-922 Fixed NPE on getRemoteHost when socket closed
 + JETTY-923 Client supports attributes
 + JETTY-926 default location for generatedClasses of jspc plugin is incorrect
 + JETTY-938 Deadlock in the TerracottaSessionManager
 + JETTY-939 NPE in AbstractConfiguration.callPreDestroyCallbacks
 + JETTY-946 Redeploys with maven jetty plugin of webapps with overlays don't
   work
 + JETTY-950 Fix double-printing of request URI in request log
 + JETTY-953 SSL keystore file input stream is not being closed directly
 + JETTY-956 SslSelectChannelConnector - password should be the default value
   of keyPassword if not specified
 + moved to org.eclipse packages
 + simplified HandlerContainer API

jetty-6.1.15 - 04 March 2009
 + JETTY-923 BayeuxClient uses message pools to reduce memory footprint
 + JETTY-924 Improved BayeuxClient disconnect handling
 + JETTY-925 Lazy bayeux messages
 + JETTY-926 default location for generatedClasses of jspc plugin is incorrect
 + JETTY-931 Fix issue with jetty-rewrite.xml
 + JETTY-934 fixed stop/start of Bayeux Client
 + JETTY-938 Deadlock in the TerracottaSessionManager
 + JETTY-939 NPE in AbstractConfiguration.callPreDestroyCallbacks

jetty-6.1.15 - 02 March 2009
 + JETTY-923 BayeuxClient uses message pools to reduce memory footprint
 + JETTY-924 Improved BayeuxClient disconnect handling
 + JETTY-925 Lazy bayeux messages
 + JETTY-926 default location for generatedClasses of jspc plugin is incorrect

jetty-6.1.15.rc4 - 19 February 2009
 + JETTY-496 Support inetd/xinetd through use of System.inheritedChannel()
 + JETTY-713 Expose additional AbstractConnector methods via MBean
 + JETTY-749 Improved ack extension
 + JETTY-802 Modify the default error pages to make association with Jetty
   clearer
 + JETTY-811 Allow configuration of system properties for the maven plugin
   using a file
 + JETTY-815 Add comet support to jQuery javascript library
 + JETTY-840 add default mime types to *.htc and *.pps
 + JETTY-848 Temporary folder not fully cleanup after stop (via Sweeper)
 + JETTY-869 NCSARequestLog locale config
 + JETTY-870 NullPointerException in Response when performing redirect to wrong
   relative URL
 + JETTY-872 Handshake handler calls wrong extension callback
 + JETTY-878 Removed printStackTrace from WaitingContinuation
 + JETTY-879 Support extra properties in jQuery comet implementation
 + JETTY-882 ChannelBayeuxListener called too many times
 + JETTY-884 Use hashcode for threadpool ID
 + JETTY-887 Split configuration and handshaking in jquery comet
 + JETTY-888 Fix abort in case of multiple outstanding connections
 + JETTY-894 Add android .apk to mime types
 + JETTY-898 Allow jetty debs to start with custom java args provided by users
 + JETTY-909 Update useragents cache

jetty-6.1.15.rc3 - 28 January 2009
 + JETTY-691 System.getProperty() calls ... wrap them in doPrivileged
 + JETTY-844 Replace reflection with direct invocation in Slf4jLog
 + JETTY-861 switched buffer pools to ThreadLocal implementation
 + JETTY-866 jetty-client test case fix

jetty-6.1.15.rc2 - 23 January 2009
 + JETTY-567 Delay in initial TLS Handshake With FireFox 3 beta5 and
   SslSelectChannelConnector
 + adjustment to jetty-client assembly packaging

jetty-6.1.15.pre0 - 20 January 2009
 + JETTY-600 Automated tests of WADI integration + upgrade to WADI 2.0
 + JETTY-749 Reliable message delivery
 + JETTY-781 Add "mvn jetty:deploy-war" for deploying a pre-assembled war
 + JETTY-794 WADI integration tests fail intermittently.
 + JETTY-795 NullPointerException in SocketConnector.java
 + JETTY-798 Jboss session manager incompatible with LifeCycle.Listener
 + JETTY-801 Bring back 2 arg EnvEntry constructor
 + JETTY-802 Modify the default error pages to make association with Jetty very
   clear
 + JETTY-804 HttpClient timeout does not always work
 + JETTY-806 Timeout related Deadlocks in HTTP Client
 + JETTY-807 HttpTester to handle charsets
 + JETTY-808 cometd client demo run.sh
 + JETTY-809 Need a way to customize WEB-INF/lib file extensions that are added
   to the classpath
 + JETTY-814 Add org.eclipse.jetty.client.Address.toString()
 + JETTY-816 Implement reconnect on java bayeux client
 + JETTY-817 Aborted SSL connections may cause jetty to hang with full cpu
 + JETTY-819 Jetty Plus no more jre 1.4
 + JETTY-821 Allow lazy loading of persistent sessions
 + JETTY-824 Access to inbound byte statistics
 + JETTY-825 URL decoding of spaces (+) fails for encoding not utf8
 + JETTY-827 Externalize servlet api
 + JETTY-830 Add ability to reserve connections on http client
 + JETTY-831 Add ability to stop java bayeux client
 + JETTY-832 More UrlDecoded handling in relation to JETTY-825
 + JETTY-833 Update debian and rpm packages for new jsp-2.1-glassfish jars and
   servlet-api jar
 + JETTY-834 Configure DTD does not allow <Map> children
 + JETTY-837 Response headers set via filter are ignored for static resources
 + JETTY-841 Duplicate messages when sending private message to yourself with
   cometd chat demo
 + JETTY-842 NPE in jetty client when no path component
 + JETTY-843 META-INF/MANIFEST.MF is not present in unpacked webapp
 + JETTY-852 Ensure handshake and connect retried on failure for jquery-cometd
 + JETTY-854 JNDI scope does not work with applications in a .war
 + JETTY-855 jetty-client uber assembly support
 + JETTY-858 ContentExchange provides bytes
 + JETTY-859 MultiPartFilter ignores the query string parameters
 + JETTY-862 EncodedHttpURI ignores given encoding in constructor

jetty-6.1.14 - 14 November 2008
 + JETTY-630 jetty6-plus rpm is missing the jetty6-plus jar
 + JETTY-748 Reduced flushing of large content
 + JETTY-765 ensure stop mojo works for all execution phases
 + JETTY-777 include util5 on the jetty debs
 + JETTY-778 handle granular windows timer in lifecycle test
 + JETTY-779 Fixed line feed in request log
 + JETTY-782 Implement interval advice for BayeuxClient
 + JETTY-783 Update jetty self-signed certificate
 + JETTY-784 TerracottaSessionManager leaks sessions scavenged in other nodes
 + JETTY-787 Handle MSIE7 mixed encoding
 + JETTY-788 Fix jotm for new scoped jndi
 + JETTY-790 WaitingContinuations can change mutex if not pending
 + JETTY-791 Ensure jdk1.4 compatibility for jetty-6
 + JETTY-792 TerracottaSessionManager does not unlock new session with
   requested id
 + JETTY-793 Fixed DataCache millisecond rounding

jetty-6.1.12 - 04 November 2008
 + JETTY-731 Completed DeliverListener for cometd
 + JETTY-772 Increased default threadpool size to 250
 + JETTY-774 Cached text/json content type
 + JETTY-775 fix port of openspaces to jetty-6

jetty-7.0.0.pre5 - 30 October 2008
 + JETTY-766 Fix npe
 + JETTY-767 Fixed SSL Client no progress handshake bug
 + JETTY-768 Remove EnvEntry overloaded constructors
 + JETTY-769 jquery example error
 + JETTY-771 Ensure NamingEntryUtil is jdk1.4 compliant
 + JETTY-772 Increased default threadpool size to 250

jetty-6.1.12.rc5 - 30 October 2008
 + JETTY-703 maxStopTimeMs added to QueuedThreadPool
 + JETTY-762 improved QueuedThreadPool idle death handling
 + JETTY-763 Fixed AJP13 constructor
 + JETTY-766 Ensure SystemProperties set early on jetty-maven-plugin
 + JETTY-767 Fixed SSL Client no progress handshake bug
 + JETTY-768 Remove EnvEntry overloaded constructors
 + JETTY-771 Ensure NamingEntryUtil jdk1.4 compliant

jetty-7.0.0.pre4 - 28 October 2008
 + JETTY-241 Support for web application overlays in rapid application
   development (jetty:run)
 + JETTY-319 improved passing of exception when webapp unavailable
 + JETTY-331 SecureRandom hangs on systems with low entropy (connectors slow to
   start)
 + JETTY-591 No server classes for jetty-web.xml
 + JETTY-604 AbstractSession.setSessionURL
 + JETTY-670 $JETTY_HOME/bin/jetty.sh not worked in Solaris, because of
   /usr/bin/which has no error-code
 + JETTY-676 ResourceHandler doesn't support HTTP HEAD requests
 + JETTY-677 GWT serialization issue
 + JETTY-680 Can't configure the ResourceCollection with maven
 + JETTY-681 JETTY-692 MultiPartFilter is slow for file uploads
 + JETTY-682 Added listeners and queue methods to cometd
 + JETTY-686 LifeCycle.Listener
 + JETTY-687 Issue with servlet-mapping in dynamic servlet invoker
 + JETTY-688 Cookie causes NumberFormatException
 + JETTY-689 processing of non-servlet related annotations
 + JETTY-690 Updated XBean dependencies to XBean version 3.4.3 and Spring
   2.0.5.
 + JETTY-696 jetty.sh restart not working
 + JETTY-698 org.eclipse.resource.JarResource.extract does not close
   JarInputStream jin
 + JETTY-699 Optimized cometd sending of 1 message to many many clients
 + JETTY-700 unit test for unread request data
 + JETTY-703 maxStopTimeMs added to QueuedThreadPool
 + JETTY-708 allow 3 scopes for jndi resources: jvm, server or webapp
 + JETTY-709 Jetty plugin's WebAppConfig configured properties gets overridden
   by AbstractJettyRunMojo even when already set
 + JETTY-710 Worked around poor implementation of File.toURL()
 + JETTY-711 DataSourceUserRealm implementation
 + JETTY-712 HttpClient does not handle request complete after response
   complete
 + JETTY-715 AJP Key size as Integer
 + JETTY-716 Fixed NPE on empty cometd message
 + JETTY-718 during ssl unwrap, return true if some bytes were read, even if
   underflow
 + JETTY-720 fix HttpExchange.waitForStatus
 + JETTY-721 Support wildcard in VirtualHosts configuration
 + JETTY-723 jetty.sh does not check if TMP already is set
 + JETTY-724 better handle EBCDIC default JVM encoding
 + JETTY-728 Improve Terracotta integration and performances
 + JETTY-730 Set SAX parse features to defaults
 + JETTY-731 DeliverListener for cometd
 + JETTY-732 Case Sensitive Basic Authentication Response Header
   Implementations
 + JETTY-733 Expose ssl connectors with xbean
 + JETTY-735 Wrong default jndi name on DataSourceUserRealm
 + JETTY-736 Client Specific cometd advice
 + JETTY-737 refactored jetty.jar into jetty, xml, security, ssl, webapp and
   deploy jars
 + JETTY-738 If jetty.sh finds a pid file is does not check to see if a process
   with that pid is still running
 + JETTY-739 Race in QueuedThreadPool
 + JETTY-741 HttpClient connects slowly due to reverse address lookup by
   InetAddress.getHostName()
 + JETTY-742 Private messages in cometd chat demo
 + JETTY-747 Handle HttpClient exceptions better
 + JETTY-755 Optimized HttpParser and buffers for few busy connections
 + JETTY-757 Unhide JAAS classes
 + JETTY-758 Update JSP to glassfish tag SJSAS-9_1_1-B51-18_Sept_2008
 + JETTY-759 Fixed JSON small negative real numbers
 + JETTY-760 Handle wildcard VirtualHost and normalize hostname in
   ContextHandlerCollection
 + JETTY-762 improved QueuedThreadPool idle death handling
 + JETTY-763 Fixed AJP13 constructor
 + JETTY-766 Ensure SystemProperties set early on jetty-maven-plugin

jetty-6.1.12.rc4 - 21 October 2008
 + JETTY-319 improved passing of exception when webapp unavailable
 + JETTY-729 Backport Terracotta integration to Jetty6.1 branch
 + JETTY-744 Backport of JETTY-741: HttpClient connects slowly due to reverse
   address lookup by InetAddress.getHostName()
 + JETTY-747 Handle exceptions better in HttpClient
 + JETTY-755 Optimized HttpParser and buffers for few busy connections
 + JETTY-758 Update JSP 2.1 to glassfish tag SJSAS-9_1_1-B51-18_Sept_2008
 + JETTY-759 Fixed JSON small negative real numbers
 + JETTY-760 Handle wildcard VirtualHost and normalize hostname in
   ContextHandlerCollection

jetty-6.1.12.rc3 - 10 October 2008
 + JETTY-241 Support for web application overlays in rapid application
   development (jetty:run)
 + JETTY-686 LifeCycle.Listener
 + JETTY-715 AJP key size
 + JETTY-716 NPE for empty cometd message
 + JETTY-718 during ssl unwrap, return true if some bytes were read, even if
   underflow
 + JETTY-720 fix HttpExchange.waitForStatus
 + JETTY-721 Support wildcard in VirtualHosts configuration
 + JETTY-722 jndi related threadlocal not cleared after deploying webapp
 + JETTY-723 jetty.sh does not check if TMP already is set
 + JETTY-725 port JETTY-708 (jndi scoping) to jetty-6
 + JETTY-730 set SAX parser features to defaults
 + JETTY-731 DeliverListener for cometd
 + JETTY-732 Case Sensitive Basic Authentication Response Header
   Implementations
 + JETTY-736 Client Specific cometd advice
 + JETTY-738 If jetty.sh finds a pid file is does not check to see if a process
   with that pid is still running
 + JETTY-739 Race in QueuedThreadPool
 + JETTY-742 Private messages in cometd chat demo

jetty-6.1.12rc2 - 12 September 2008
 + JETTY-282 Support manually-triggered reloading
 + JETTY-331 SecureRandom hangs on systems with low entropy (connectors slow to
   startup)
 + JETTY-591 No server classes for jetty-web.xml
 + JETTY-670 $JETTY_HOME/bin/jetty.sh not worked in Solaris, because of
   /usr/bin/which has no error-code
 + JETTY-671 Configure DTD does not allow <Property> children
 + JETTY-672 Utf8StringBuffer doesn't properly handle null characters (char
   with byte value 0)
 + JETTY-676 ResourceHandler doesn't support HTTP HEAD requests
 + JETTY-677 GWT serialization issue
 + JETTY-680 Can't configure the ResourceCollection with maven
 + JETTY-681 JETTY-692 MultiPartFilter is slow for file uploads
 + JETTY-682 Added listeners and queue methods to cometd
 + JETTY-683 ResourceCollection works for jsp files but does not work for
   static resources under DefaultServlet
 + JETTY-687 Issue with servlet-mapping in dynamic servlet invoker
 + JETTY-688 Cookie causes NumberFormatException
 + JETTY-696 ./jetty.sh restart not working
 + JETTY-698 org.eclipse.resource.JarResource.extract does not close
   JarInputStream jin
 + JETTY-699 Optimize cometd sending of 1 message to many many clients
 + JETTY-709 Jetty plugin's WebAppConfig configured properties gets overridden
   by AbstractJettyRunMojo even when already set
 + JETTY-710 Worked around poor implementation of File.toURL()
 + JETTY-712 HttpClient does not handle request complete after response
   complete

jetty-7.0.0pre3 - 06 August 2008
 + JETTY-30 Externalize servlet-api to own project
 + JETTY-182 Support setting explicit system classpath for jasper
   Jsr199JavaCompiler
 + JETTY-319 Get unavailable exception and added startWithUnavailable option
 + JETTY-381 JETTY-622 Multiple Web Application Source Directory
 + JETTY-442 Accessors for mimeType on ResourceHandler
 + JETTY-502 forward of an include should hide include attributes
 + JETTY-562 RewriteHandler support for virtual hosts
 + JETTY-563 JETTY-482 OpenRemoteServiceServlet for GWT1.5M2+
 + JETTY-564 Consider optionally importing org.apache.jasper.servlet
 + JETTY-571 SelectChannelConnector throws Exception on close on Windows
 + JETTY-608 Suspend/Resume/Complete request listeners
 + JETTY-621 Improved LazyList javadoc
 + JETTY-626 Null protect reading the dtd resource from classloader
 + JETTY-628 Rewrite rule for rewriting scheme
 + JETTY-629 Don't hold timeout lock during expiry call.
 + JETTY-632 OSGi tags for Jetty client
 + JETTY-633 Default form encoding 8859_1 rather than utf-8
 + JETTY-635 Correctly merge request parameters when doing forward
 + JETTY-636 Separate lifeycle of jsp build
 + JETTY-637 empty date headers throw IllegalArgumentException
 + JETTY-641 JDBC Realm purge cache problem
 + JETTY-642 NPE in LdapLoginModule
 + JETTY-644 LdapLoginModule uses proper filters when searching
 + JETTY-645 Do not provide jetty-util to the webapps
 + JETTY-646 Should set Cache-Control header when sending errors to avoid
   caching
 + JETTY-647 suspended POSTs with binary data do too many resumes
 + JETTY-650 Parse "*" URI for HTTP OPTIONS request
 + JETTY-651 Release resources during destroy
 + JETTY-653 Upgrade jta api specs to more recent version
 + JETTY-654 Allow Cometd Bayeux object to be JMX manageable
 + JETTY-655 Support parsing application/x-www-form-urlencoded parameters via
   http PUT
 + JETTY-656 HttpClient defaults to async mode
 + JETTY-659 ContentExchange and missing headers in HttpClient
 + JETTY-663 AbstractDatabaseLoginModule handle not found UserInfo and userName
 + JETTY-665 Support merging class directories
 + JETTY-666 scanTargetPatterns override the values already being set by
   scanTarget
 + JETTY-667 HttpClient handles chunked content
 + JETTY-669 Http methods other than GET and POST should not have error page
   content
 + JETTY-671 Configure DTD does not allow <Property> children
 + JETTY-672 Utf8StringBuffer doesn't properly handle null characters (char
   with byte value 0)
 + JETTY-675 ServletContext.getRealPath("") returns null instead of returning
   the root dir of the webapp
 + Upgrade jsp 2.1 to SJSAS-9_1_02-B04-11_Apr_2008

jetty-6.1.12rc1 - 01 August 2008
 + JETTY-319 Get unavailable exception and added startWithUnavailable option
 + JETTY-381 JETTY-622 Multiple Web Application Source Directory
 + JETTY-442 Accessors for mimeType on ResourceHandler
 + JETTY-502 forward of an include should hide include attributes
 + JETTY-562 RewriteHandler support for virtual hosts
 + JETTY-563 GWT OpenRemoteServiceServlet GWT1.5M2+
 + JETTY-564 Consider optionally importing org.apache.jasper.servlet
 + JETTY-571 SelectChannelConnector throws Exception on close on Windows
 + JETTY-596 Proxy authorization support in HttpClient
 + JETTY-599 handle buffers consistently handle invalid index for poke
 + JETTY-603 Handle IPv6 in HttpURI
 + JETTY-605 Added optional threadpool to BayeuxService
 + JETTY-606 better writeTo impl for BIO
 + JETTY-607 Add GigaSpaces session clustering
 + JETTY-610 jetty.class.path not being interpreted
 + JETTY-613 website module now generates site-component for jetty-site
 + JETTY-614 scanner allocated hashmap on every scan
 + JETTY-623 ServletContext.getServerInfo() non compliant
 + JETTY-626 Null protect reading the dtd resource from classloader
 + JETTY-628 Rewrite rule for rewriting scheme
 + JETTY-629 Don't hold timeout lock during expiry call.
 + JETTY-632 OSGi tags for Jetty client
 + JETTY-633 Default form encoding 8859_1 rather than utf-8
 + JETTY-635 Correctly merge request parameters when doing forward
 + JETTY-637 empty date headers throw IllegalArgumentException
 + JETTY-641 JDBC Realm purge cache problem
 + JETTY-642 NPE in LdapLoginModule
 + JETTY-644 LdapLoginModule uses proper filters when searching
 + JETTY-646 Should set Cache-Control header when sending errors to avoid
   caching
 + JETTY-647 suspended POSTs with binary data do too many resumes
 + JETTY-650 Parse "*" URI for HTTP OPTIONS request
 + JETTY-651 Release resources during destroy
 + JETTY-654 Allow Cometd Bayeux object to be JMX manageable
 + JETTY-655 Support parsing application/x-www-form-urlencoded parameters via
   http PUT
 + JETTY-656 HttpClient defaults to async mode
 + JETTY-657 Backport jetty-7 sslengine
 + JETTY-658 backport latest HttpClient from jetty-7 to jetty-6
 + JETTY-659 ContentExchange and missing headers in HttpClient
 + JETTY-660 Backported QoSFilter
 + JETTY-663 AbstractDatabaseLoginModule handle not found UserInfo and userName
 + JETTY-665 Support merging class directories
 + JETTY-666 scanTargetPatterns override the values already being set by
   scanTarget
 + JETTY-667 HttpClient handles chunked content
 + JETTY-669 Http methods other than GET and POST should not have error page
   content
 + Upgrade jsp 2.1 to SJSAS-9_1_02-B04-11_Apr_2008

jetty-7.0.0pre2 - 30 June 2008
 + JETTY-336 413 error for header buffer full
 + JETTY-425 race in stopping SelectManager
 + JETTY-568 Avoid freeing DirectBuffers. New locking NIO ResourceCache.
 + JETTY-569 Stats for suspending requests
 + JETTY-572 Unique cometd client ID
 + JETTY-576 servlet dtds and xsds not being loaded locally
 + JETTY-578 OSGI Bundle-RequiredExcutionEnvironment set to J2SE-1.5
 + JETTY-579 OSGI resolved management and servlet.resources import error
 + JETTY-580 Fixed SSL shutdown
 + JETTY-581 ContextPath constructor
 + JETTY-582 final ISO_8859_1
 + JETTY-584 handle null contextPath
 + JETTY-587 persist sessions to database
 + JETTY-588 handle Retry in ServletException
 + JETTY-589 Added Statistics Servlet
 + JETTY-590 Digest auth domain for root context
 + JETTY-592 expired timeout callback without synchronization
 + JETTY-595 SessionHandler only deals with base request session
 + JETTY-596 proxy support in HttpClient
 + JETTY-598 Added more reliable cometd message flush option
 + JETTY-599 handle buffers consistently handle invalid index for poke
 + JETTY-603 Handle IPv6 in HttpURI
 + JETTY-605 Added optional threadpool to BayeuxService
 + JETTY-606 better writeTo impl for BIO
 + JETTY-607 Add GigaSpaces session clustering
 + JETTY-609 jetty-client improvements for http conversations
 + JETTY-610 jetty.class.path not being interpreted
 + JETTY-611 make general purpose jar scanning mechanism
 + JETTY-612 scan for web.xml fragments
 + JETTY-613 various distribution related changes
 + JETTY-614 scanner allocates hashmap on every iteration
 + JETTY-615 Replaced CDDL servlet.jar with Apache-2.0 licensed version
 + JETTY-623 ServletContext.getServerInfo() non compliant

jetty-6.1.11 - 06 June 2008
 + JETTY-336 413 error for full header buffer
 + JETTY-425 race in stopping SelectManager
 + JETTY-580 Fixed SSL shutdown
 + JETTY-581 ContextPath constructor
 + JETTY-582 final ISO_8859_1
 + JETTY-584 handle null contextPath
 + JETTY-588 handle Retry in ServletException
 + JETTY-590 Digest auth domain for root context
 + JETTY-592 expired timeout callback without synchronization
 + JETTY-595 SessionHandler only deals with base request session
 + JETTY-596 Proxy support in HttpClient
 + JETTY-598 Added more reliable cometd message flush option

jetty-6.1.10 - 20 May 2008
 + JETTY-440 allow file name patterns for jsp compilation for jspc plugin
 + JETTY-529 CNFE when deserializing Array from session resolved
 + JETTY-537 JSON handles Locales
 + JETTY-547 Shutdown SocketEndpoint output before close
 + JETTY-550 Reading 0 bytes corrupts ServletInputStream
 + JETTY-551 Upgraded to Wadi 2.0-M10
 + JETTY-556 Encode all URI fragments
 + JETTY-557 Allow ServletContext.setAttribute before start
 + JETTY-558 optional handling of X-Forwarded-For/Host/Server
 + JETTY-566 allow for non-blocking behavior in jetty maven plugin
 + JETTY-572 unique cometd client ID
 + JETTY-579 osgi fixes with management and servlet resources
 + Use QueuedThreadPool as default

jetty-7.0.0pre1 - 03 May 2008
 + JETTY-440 allow file name patterns for jsp compilation for jspc plugin
 + JETTY-529 CNFE when deserializing Array from session resolved
 + JETTY-558 optional handling of X-Forwarded-For/Host/Server
 + JETTY-559 ignore unsupported shutdownOutput
 + JETTY-566 allow for non-blocking behavior in jetty maven plugin
 + address osgi bundling issue relating to build resources
 + Allow annotations example to be built regularly, copy to contexts-available
 + Improved suspend examples
 + Make annotations example consistent with servlet 3.0
 + Refactor JNDI impl to simplify

jetty-7.0.0pre0 - 21 April 2008
 + JETTY-282 Support manually-triggered reloading by maven plugin
 + JETTY-341 100-Continues sent only after getInputStream called.
 + JETTY-386 backout fix and replaced with
   ContextHandler.setCompactPath(boolean)
 + JETTY-399 update OpenRemoteServiceServlet to gwt 1.4
 + JETTY-467 allow URL rewriting to be disabled.
 + JETTY-468 unique holder names for addServletWithMapping
 + JETTY-471 LDAP JAAS Realm
 + JETTY-474 Fixed case sensitivity issue with HttpFields
 + JETTY-475 AJP connector in RPMs
 + JETTY-486 Improved jetty.sh script
 + JETTY-487 Handle empty chunked request
 + JETTY-494 Client side session replication
 + JETTY-519 HttpClient does not recycle closed connection.
 + JETTY-522 Add build profile for macos for setuid
 + JETTY-523 Default servlet uses ServletContext.getResource
 + JETTY-524 Don't synchronize session event listener calls
 + JETTY-525 Fixed decoding for long strings
 + JETTY-526 Fixed MMBean fields on JMX MBeans
 + JETTY-528 Factor our cookie parsing to CookieCutter
 + JETTY-530 Improved JMX MBeanContainer lifecycle
 + JETTY-531 Optional expires on MovedContextHandler
 + JETTY-532 MBean properties for QueuedThreadPool
 + JETTY-535 Fixed Bayeux server side client memory leak
 + JETTY-537 JSON handles Locales
 + JETTY-538 test harness fix for windows
 + JETTY-540 Servlet-3.0 & java5 support (work in progress)
 + JETTY-543 Atomic batch get and put of files.
 + JETTY-545 Rewrite handler
 + JETTY-546 Webapp runner. All in one jar to run a webapps
 + JETTY-547 Shutdown SocketEndpoint output before close
 + JETTY-550 Reading 0 bytes corrupts ServletInputStream
 + JETTY-551 Wadi 2.0-M10
 + JETTY-553 Fixed customize override
 + JETTY-556 Encode all URI fragments
 + JETTY-557 Allow ServletContext.setAttribute before start
 + JETTY-560 Allow decoupling of jndi names in web.xml
 + Added option to dispatch to suspended requests.
 + BayeuxClient use a single connection for polling
 + Delay 100 continues until getInputStream
 + Ensure Jotm tx mgr can be found in jetty-env.xml
 + HttpClient supports pipelined request
 + Jetty-6.1.8 Changes
 + Make javax.servlet.jsp optional osgi import for jetty module
 + QueuedThreadPool default
 + Refactor of Continuation towards servlet 3.0 proposal
 + Renamed modules management and naming to jmx and jndi.
 + RetryRequest exception now extends ThreadDeath

jetty-6.1.9 - 26 March 2008
 + JETTY-399 update OpenRemoteServiceServlet to gwt 1.4
 + JETTY-471 LDAP JAAS Realm
 + JETTY-475 AJP connector in RPMs
 + JETTY-482 update to JETTY-399
 + JETTY-519 HttpClient does not recycle closed connection.
 + JETTY-522 Add build profile for macos for setuid
 + JETTY-525 Fixed decoding for long strings
 + JETTY-526 Fixed MMBean fields on JMX MBeans
 + JETTY-532 MBean properties for QueuedThreadPool
 + JETTY-535 Fixed Bayeux server side client memory leak
 + JETTY-538 test harness fix for windows
 + JETTY-541 Cometd per client timeouts
 + Ensure Jotm tx mgr can be found in jetty-env.xml
 + Make javax.servlet.jsp optional osgi import for jetty module

jetty-6.1.8 - 28 February 2008
 + JETTY-350 log ssl errors on SslSocketConnector
 + JETTY-417 JETTY_LOGS environment variable not queried by jetty.sh
 + JETTY-433 ContextDeployer constructor fails unnecessarily when using a
   security manager if jetty.home not set
 + JETTY-434 ContextDeployer scanning of sub-directories should be optional
 + JETTY-481 Handle empty Bayeux response
 + JETTY-489 Improve doco on the jetty.port property for plugin
 + JETTY-490 Fixed JSONEnumConvertor
 + JETTY-491 opendocument mime types
 + JETTY-492 Null pointer in HashSSORealm
 + JETTY-493 JSON handles BigDecimals
 + JETTY-498 Improved cookie parsing
 + JETTY-507 Fixed encoding from JETTY-388 and test case
 + JETTY-508 Extensible cometd handlers
 + JETTY-509 Fixed JSONP transport for changing callback names
 + JETTY-511 jetty.sh mishandled JETTY_HOME when launched from a relative path
 + JETTY-512 add slf4j as optional to manifest
 + JETTY-513 Terracotta session replication does not work when the initial page
   on each server does not set any attributes
 + JETTY-515 Timer is missing scavenging Task in HashSessionManager
 + Add "mvn jetty:stop"
 + Added BayeuxService
 + Added JSON.Convertor and non static JSON instances
 + Added QueuedThreadPool
 + add removeHandler(Handler) method to HandlerContainer interface
 + AJP handles bad mod_jk methods
 + Allow code ranges on ErrorPageErrorHandler
 + allow sessions to be periodically persisted to disk
 + Cookie support in BayeuxClient
 + Fixed JSON negative numbers
 + further Optimizations and improvements of Cometd
 + grizzly fixed for posts
 + Improved Bayeux API
 + Improved Cometd timeout handling
 + JSON unquotes /
 + Long cache for JSON
 + Optimizations and improvements of Cometd, more pooled objects
 + Optimized QuotedStringTokenizer.quote()
 + Remove duplicate commons-logging jars and include sslengine in jboss sar

jetty-6.1.7 - 22 December 2007
 + JETTY-386 CERT-553235 backout fix and replaced with
   ContextHandler.setCompactPath(boolean)
 + JETTY-467 allow URL rewriting to be disabled.
 + JETTY-468 unique holder names for addServletWithMapping
 + JETTY-474 Fixed case sensitivity issue with HttpFields
 + JETTY-486 Improved jetty.sh script
 + JETTY-487 Handle empty chunked request
 + Add "mvn jetty:stop"
 + Added BayeuxService
 + Added JSON.Convertor and non static JSON instances
 + allow sessions to be periodically persisted to disk
 + Cookie support in BayeuxClient
 + grizzly fixed for posts
 + jetty-6.1 branch created from 6.1.6 and r593 of jetty-contrib trunk
 + Optimizations and improvements of Cometd, more pooled objects
 + Update java5 patch

jetty-6.1.6 - 18 November 2007
 + JETTY-455 Optional cometd id
 + JETTY-459 Unable to deploy from Eclipse into the root context
 + JETTY-461 fixed cometd unknown channel
 + JETTY-464 typo in ErrorHandler
 + JETTY-465 System.exit() in constructor exception for MultiPartOutputStream
 + rudimentary debian packaging
 + updated grizzly connector to 1.6.1

jetty-6.1.6rc1 - 05 November 2007
 + JETTY-388 Handle utf-16 and other multibyte non-utf-8 form content.
 + JETTY-409 String params that denote files changed to File
 + JETTY-438 handle trailing . in vhosts
 + JETTY-439 Fixed 100 continues clash with Connection:close
 + JETTY-443 windows bug causes Acceptor thread to die
 + JETTY-445 removed test code
 + JETTY-448 added setReuseAddress on AbstractConnector
 + JETTY-450 Bad request for response sent to server
 + JETTY-451 Concurrent modification of session during invalidate
 + JETTY-452 CERT VU#237888 Dump Servlet - prevent cross site scripting
 + JETTY-453 updated Wadi to 2.0-M7
 + JETTY-454 handle exceptions with themselves as root cause
 + JETTY-456 allow null keystore for osX
 + JETTY-457 AJP certificate chains
 + Added configuration file for capturing stderr and stdout
 + CERT VU#38616 handle single quotes in cookie names.
 + Give bayeux timer name
 + Give Terracotta session scavenger a name
 + Housekeeping on poms
 + Improved JSON parsing from Readers
 + Jetty Eclipse Plugin 1.0.1: force copy of context file on redeploy
 + Moved some impl classes from jsp-api-2.1 to jsp-2.1
 + Updated for dojo 1.0(rc) cometd
 + Upgrade jsp 2.1 to SJSAS-9_1-B58G-FCS-08_Sept_2007

jetty-6.1.6rc0 - 03 October 2007
 + JETTY-259 SystemRoot set for windows CGI
 + JETTY-311 avoid json keywords
 + JETTY-376 allow anything but CRLF in reason string
 + JETTY-398 Allow same WADI Dispatcher to be used across multiple web-app
   contexts
 + JETTY-400 consume CGI stderr
 + JETTY-402 keep HashUserRealm in sync with file
 + JETTY-403 Allow long content length for range requests
 + JETTY-404 WebAppDeployer sometimes deploys duplicate webapp
 + JETTY-405 Default date formate for reqest log
 + JETTY-407 AJP handles unknown content length
 + JETTY-413 Make rolloveroutputstream timer daemon
 + JETTY-422 Allow <Property> values to be null in config files
 + JETTY-423 Ensure javax.servlet.forward parameters are latched on first
   forward
 + JETTY-425 Handle duplicate stop calls better
 + JETTY-430 improved cometd logging
 + JETTY-431 HttpClient soTimeout
 + Add ability to persist sessions with HashSessionManager
 + Added ConcatServlet to combine javascript and css
 + Added jetty.lib system property to start.config
 + Added JPackage RPM support
 + Added JSON.Convertable
 + Adding setUsername,setGroupname to setuid and mavenizing native build
 + Add jetty.host system property
 + AJP13 Fix on chunked post
 + Allow properties files on the XmlConfiguration command line.
 + Allow scan interval to be set after Scanner started
 + Avoid FULL exception in window between blockForOutput and remote close
 + Cached user agents strings in the /org/mortbay/jetty/useragents resource
 + CVE-2007-5615 Added protection for response splitting with bad headers.
 + Ensure session is completed only when leaving context.
 + Fix cached header optimization for extra characters
 + Fix Host header for async client
 + Fix patch for java5 to include cometd module
 + Fix typo in async client onResponsetHeader method name
 + Give deployment file Scanner threads a unique name
 + Make default time format for RequestLog match NCSA default
 + Make mx4j used only if runtime uses jdk<1.5
 + Moved Grizzly to contrib
 + Prevent infinite loop on stopping with temp dir
 + Removal of unneeded dependencies from management, maven-plugin, naming &
   plus poms
 + SetUID option to support setgid
 + Tweak OSGi manifests to remove unneeded imports
 + Updated README, test index.html file and jetty-plus.xml file
 + Update jasper2.1 to tag SJSAS-9_1-B58C-FCS-22_Aug_2007
 + Update terracotta to 2.4.1 and exclude ssl classes
 + Use terracotta repo for build; make jetty a terracotta module
 + UTF-8 for bayeux client

jetty-6.1.5 - 19 July 2007
 + JETTY-392 updated LikeJettyXml example
 + Fixed GzipFilter for dispatchers
 + Fixed reset of reason
 + Upgrade to Jasper 2.1 tag SJSAS-9_1-B50G-BETA3-27_June_2007

jetty-6.1.5rc0 - 15 July 0200
 + JETTY-253 Improved graceful shutdown
 + JETTY-373 Stop all dependent lifecycles
 + JETTY-374 HttpTesters handles large requests/responses
 + JETTY-375 IllegalStateException when committed.
 + JETTY-376 allow spaces in reason string
 + JETTY-377 allow sessions to be wrapped with
   AbstractSesssionManager.SessionIf
 + JETTY-378 handle JVMs with non ISO/UTF default encodings
 + JETTY-380 handle pipelines of more than 4 requests!
 + JETTY-385 EncodeURL for new sessions from dispatch
 + JETTY-386 Allow // in file resources
 + Added GzipFilter and UserAgentFilter
 + Dispatch SslEngine expiry (non atomic)
 + Improved Request log configuration options
 + make jetty plus example webapps use ContextDeployer
 + make OSGi manifests for jetty jars
 + Make SLF4JLog impl public, add mbean descriptors
 + Protect SslSelectChannelConnector from exceptions during close
 + remove call to open connectors in jetty.xml
 + SetUID option to only open connectors before setUID.
 + SPR-3682 - dont hide forward attr in include.
 + update links on website
 + update terracotta configs for tc 2.4 stable1
 + update terracotta session clustering to terracotta 2.4
 + Upgrade to Jasper 2.1 tag SJSAS-9_1-B50G-BETA3-27_June_2007

jetty-6.1.4 - 15 June 2007
 + JETTY-370 ensure idleTimeout<=0 means connections never expire
 + JETTY-371 Fixed chunked HEAD response
 + JETTY-372 make test for cookie caching more rigorous
 + fixed early open() call in NIO connectors

jetty-6.1.4rc1 - 10 June 2007
 + JETTY-310 better exception when no filter file for cometd servlet
 + JETTY-323 handle htaccess without a user realm
 + JETTY-346 add wildcard support to extra scan targets for maven plugin
 + JETTY-355 extensible SslSelectChannelConnector
 + JETTY-357 cleaned up ssl buffering
 + JETTY-360 allow connectors, userRealms to be added from a <jettyConfig> for
   maven plugin
 + JETTY-361 prevent url encoding of dir listings for non-link text
 + JETTY-362 More object locks
 + JETTY-365 make needClientAuth work on SslSelectChannelConnector
 + JETTY-366 JETTY-368 Improved bayeux disconnect
 + async client improvements
 + fixed handling of large streamed files
 + Fixed synchronization conflict SslSelectChannel and SelectChannel
 + moved documentation for jetty and jspc maven plugins to wiki
 + Optional static content cache
 + Work around IBM JVM socket close issue

jetty-6.1.4rc0 - 01 June 2007
 + JETTY-257 fixed comet cross domain
 + JETTY-309 fix applied to sslEngine
 + JETTY-317 rollback inclusion of cometd jar for maven plugin
 + JETTY-318 Prevent meta channels being created
 + JETTY-330 Allow dependencies with scope provided for jspc plugin
 + JETTY-335 SslEngine overflow fix
 + JETTY-337 deprecated get/setCipherSuites and added
   get/setExcludeCipherSuites
 + JETTY-338 protect isMoreInBuffer from destroy
 + JETTY-339 MultiPartFiler deletes temp files on IOException
 + JETTY-340 FormAuthentication works with null response
 + JETTY-344 gready fill in ByteArrayBuffer.readFrom
 + JETTY-345 fixed lost content with blocked NIO.
 + JETTY-347 Fixed type util init
 + JETTY-352 Object locks
 + Add (commented out) jspc precompile to test-webapp
 + Add ability to run cometd webapps to maven plugin
 + Add slf4j-api for upgraded version
 + Allow XmlConfiguration properties to be configured
 + Change scope of fields for Session
 + Delay ssl handshake until after dispatch in sslSocketConnector
 + fixed JSP close handling
 + fixed waiting continuation reset
 + improved date header handling
 + Optional send Date header. Server.setSendDateHeader(boolean)
 + Reorganized import of contrib modules
 + Set so_timeout during ssl handshake as an option on SslSocketConnector
 + Unified JMX configuration
 + Updated junit to 3.8.2
 + Updated slf4j version to 1.3.1
 + update etc/jetty-ssl.xml with new handshake timeout setting

jetty-6.1.3 - 04 May 2007
 + JETTY-309 don't clear writable status until dispatch
 + JETTY-315 suppressed warning
 + JETTY-322 AJP13 cping and keep alive
 + Handle CRLF for content in header optimization

jetty-6.1.2 - 01 May 2007
 + JETTY-322 fix ajp cpong response and close handling
 + JETTY-324 fix ant plugin
 + JETTY-328 updated jboss
 + Added static member definition in WadiSessionManager
 + Fixed session invalidation error in WadiSessionManager
 + Improved unavailabile handling
 + sendError resets output state
 + Updated Wadi to version 2.0-M3

jetty-6.1.2rc5 - 24 April 2007
 + JETTY-305 delayed connection destroy
 + JETTY-309 handle close in multivalue connection fields.
 + JETTY-314 fix for possible NPE in Request.isRequestedSessionIdValid
 + Allow jsp-file to be / or /*
 + removed some compile warnings
 + set default keystore for SslSocketConnector

jetty-6.1.2rc4 - 19 April 2007
 + JETTY-294 Fixed authentication reset
 + JETTY-299 handle win32 paths for object naming
 + JETTY-300 removed synchronized on dispatch
 + JETTY-302 correctly parse quoted content encodings
 + JETTY-303 fixed dual reset of generator
 + JETTY-304 Fixed authentication reset

jetty-6.1.2rc3 - 16 April 2007
 + JETTY-283 Parse 206 and 304 responses in client
 + JETTY-285 enable jndi for mvn jetty:run-war and jetty:run-exploded
 + JETTY-289 fixed javax.net.ssl.SSLException on binary file upload
 + JETTY-292 Fixed error page handler error pages
 + JETTY-293 fixed NPE on fast init
 + JETTY-294 Response.reset() resets headers as well as content
 + JETTY-295 Optional support of authenticated welcome files
 + JETTY-296 Close direct content inputstreams
 + JETTY-297 Recreate tmp dir on stop/start
 + JETTY-298 Names in JMX ObjectNames for context, servlets and filters
 + AJP redirects https requests correctly
 + Fixed writes of unencoded char arrays.
 + Improved performance and exclusions for TLD scanning
 + Improvements to allow simple setting of Cache-Control headers
 + MBean properties assume writeable unless marked RO
 + refactor of SessionManager and SessionIdManager for clustering

jetty-6.1.2rc2 - 27 March 2007
 + JETTY-125 maven plugin: ensure test dependencies on classpath for
   <useTestClasspath>
 + JETTY-246 path encode cookies rather than quote
 + JETTY-254 prevent close of jar entry by bad JVMs
 + JETTY-256 fixed isResumed and work around JVM bug
 + JETTY-258 duplicate log message in ServletHandler
 + JETTY-260 Close connector before stop
 + JETTY-262 Allow acceptor thread priority to be adjusted
 + JETTY-263 Added implementation for authorizationType Packets
 + JETTY-265 Only quote cookie values if needed
 + JETTY-266 Fix deadlock with shutdown
 + JETTY-271 ResourceHandler uses resource for MimeType mapping
 + JETTY-272 Activate and Passivate events for sessions
 + JETTY-274 Improve flushing at end of request for blocking
 + JETTY-276 Partial fix for reset/close race
 + JETTY-277 Improved ContextHandlerCollection
 + JETTY-278 Session invalidation delay until no requests
 + JETTY-280 Fixed deadlock with two flushing threads
 + JETTY-284 Fixed stop connector race
 + JETTY-286 isIntegral and isConfidential methods overridden in
   SslSelectChannelConnector
 + Added RestFilter for PUT and DELETE from Aleksi Kallio
 + AJP13 CPING request and CPONG response implemented
 + AJP13 remoteUser, contextPath, servletPath requests implemented
 + AJP13 Shutdown Request from peer implemented
 + Change some JNDI logging to debug level instead of info
 + Enable the SharedStoreContextualiser for the WadiSessionManager(Database
   store for clustering)
 + Make annotations work for maven plugin
 + Optimized multi threaded init on startup servlets
 + Refactor Scanner to increase code reuse with maven/ant plugins
 + Removed unneeded specialized TagLibConfiguration class from maven plugin
 + Update jasper to glassfish tag SJSAS-9_1-B39-RC-14_Mar_2007

jetty-6.1.2rc1 - 08 March 2007
 + JETTY-157 make CGI handle binary data
 + JETTY-175 JDBCUserRealm use getInt instead of getObject
 + JETTY-188 Use timer for session scavaging
 + JETTY-235 default realm name
 + JETTY-242 fix race condition with scavenging sessions when stopping
 + JETTY-243 FULL
 + JETTY-244 Fixed UTF-8 buffer overflow
 + JETTY-245 Client API improvements
 + JETTY-246 spaces in cookies
 + JETTY-248 setContentLength after content written
 + JETTY-250 protect attribute enumerations from modification
 + JETTY-252 Fixed stats handling of close connection
 + JETTY-254 prevent close of jar file by bad JVMs
 + add ajp connector jar to jetty-jboss sar
 + Added option to allow null pathInfo within context
 + Added support for lowResourcesIdleTime to SelectChannelConnector
 + BoundedThreadPool queues rather than blocks excess jobs.
 + call preDestroy() after servlet/filter destroy()
 + Ensure jetty/jboss uses servlet-spec classloading order
 + Fix constructor for Constraint to detect wildcard role
 + fix Dump servlet to handle primitive array types
 + handle comma separated values for the Connection: header
 + Improved Context setters for wadi support
 + Improved handling of early close in AJP
 + Support null pathInfo option for webservices deployed to jetty/jboss
 + TagLibConfiguration uses resource input stream
 + Workaround to call SecurityAssocation.clear() for jboss webservices calls to
   ejbs

jetty-6.1.2rc0 - 15 February 2007
 + JETTY-223 Fix disassociate of UserPrincipal on dispatches
 + JETTY-226 Fixed SSLEngine close issue
 + JETTY-232 Fixed use of override web.xml
 + JETTY-236 Buffer leak
 + JETTY-237 AJPParser Buffer Data Handling
 + JETTY-238 prevent form truncation
 + Coma separated cookies
 + Cometd timeout clients
 + Patches from sybase for ClientCertAuthenticator

jetty-6.1.2pre1 - 05 February 2007
 + JETTY-224 run build up to process-test before invoking jetty:run
 + Added error handling for incorrect keystore/truststore password in
   SslSelectChannelConnector
 + added win32service to standard build
 + allow ResourceHandler to use resource base from an enclosing ContextHandler
 + fixed bug with virtual host handling in ContextHandlerCollection
 + refactored cometd to be continuation independent

jetty-6.1.2pre0 - 01 February 2007
 + JETTY-213 request.isUserInRole(String) fixed
 + JETTY-215 exclude more transitive dependencies from tomcat jars for jsp-2.0
 + JETTY-216 handle AJP packet fragmentation
 + JETTY-218 handle AJP ssl key size and integer
 + JETTY-219 fixed trailing encoded chars in cookies
 + JETTY-220 fixed AJP content
 + JETTY-222 fix problem parsing faces-config.xml
 + Added cometd jsonp transport from aabeling
 + Added terracotta cluster support for cometd
 + add support for Annotations in servlet, filter and listener sources
 + enable SslSelectChannelConnector to modify the SslEngine's client
   authentication settings
 + Fixed 1.4 method in jetty plus
 + Fixed generation of errors during jsp compilation for jsp-2.1
 + handle virtual hosts in ContextHandlerCollection
 + improved writer buffering
 + moved JSON parser to util to support reuse

jetty-6.1.1 - 15 January 2007

jetty-6.1.1rc1 - 12 January 2007
 + JETTY-210 Build jsp-api-2.0 for java 1.4
 + Use timers for Rollover logs and scanner

jetty-6.1.1rc0 - 10 January 2007
 + JETTY-209 Added ServletTester.createSocketConnector
 + JETTY-210 Build servlet-api-2.5 for java 1.4
 + JETTY-211 fixed jboss build
 + CGI servlet fails without exception
 + ensure response headers on AjaxFilter messsages turn off caching
 + extras/win32service download only if no JavaServiceWrapper exist
 + Fixed unpacking WAR
 + MultiPartFilter deleteFiles option
 + simplified chat demo
 + start webapps on deployment with jboss, use isDistributed() method from
   WebAppContext

jetty-6.1.0 - 09 January 2007
 + Fixed unpacking WAR

jetty-6.1.0 - 05 January 2007
 + JETTY-206 fixed AJP getServerPort and getRemotePort
 + Added extras/win32service
 + Added WebAppContext.setCopyWebDir to avoid JVM jar caching issues.
 + GERONIMO-2677 refactor of session id handling for clustering
 + Improved config of java5 threadpool
 + Protect context deployer from Errors
 + ServletTester sets content length

jetty-6.1.0rc3 - 02 January 2007
 + JETTY-195 fixed ajp ssl_cert handling
 + JETTY-197 fixed getRemoteHost
 + JETTY-203 initialize ServletHandler if no Context instance
 + JETTY-204 setuid fix
 + extras/servlet-tester
 + implement resource injection and lifecycle callbacks declared in web.xml
 + setLocale does not use default content type
 + Use standard releases of servlet and jsp APIs.

jetty-6.1.0rc2 - 20 December 2006
 + JETTY-167 cometd refactor
 + JETTY-194 doubles slashes are significant in URIs
 + JETTY-201 make run-as work for both web container and ejb container in jboss
 + AJP13Parser, throw IllegalStateException on unimplemented AJP13 Requests
 + ContextHandlerCollection is noop with no handlers
 + ensure classpath passed to jspc contains file paths not urls
 + ensure com.sun.el.Messages.properties included in jsp-2.1 jar
 + ensure servlets initialized if only using ServletHandler
 + fixed Jetty-197 AJP13 getRemoteHost()
 + Refactored AbstractSessionManager for ehcache
 + remove code to remove SecurityHandler if no constraints present

jetty-6.1.0rc1 - 14 December 2006
 + JETTY-193 MailSessionReference without authentication
 + JETTY-199 newClassPathResource
 + added cache session manager(pre-alpha)
 + ensure unique name for ServletHolder instances
 + simplified idle timeout handling

jetty-6.1.0rc0 - 08 December 2006
 + JETTY-123 fix improved
 + JETTY-181 Allow injection of a java:comp Context
 + JETTY-182 Optionally set JSP classpath initparameter
 + JETTY-184 cometd connect non blocking
 + JETTY-185 tmp filename generation
 + JETTY-189 ProxyConnection
 + 403 for BASIC authorization failure
 + Added extras/gwt
 + Added org.mortbay.thread.concurrent.ThreadPool
 + Added spring ejb3 demo example
 + DefaultHandler links virtual hosts.
 + Dispatcher does not protect javax.servlet attributes
 + Fixed cachesize on invalidate
 + Fixed idle timeout
 + flush if content-length written
 + forward query attribute fix
 + Handle request content encodings
 + null for unknown named dispatches
 + Optimization of writers
 + ServletHandler allows non REQUEST exceptions to propogate
 + Servlet role ref
 + session attribute listener
 + Support for RFC2518 102-processing response
 + TCK fixes from Sybase:
 + update jasper to glassfish SJSAS-9_1-B27-EA-07_Dec_2006

jetty-6.1.0pre3 - 22 November 2006
 + JETTY-154 Cookies are double quotes only
 + JETTY-180 XBean support for context deploy
 + CVE-2006-6969 Upgraded session ID generation to use SecureRandom
 + Expose isResumed on Continuations
 + fixed NIO endpoint flush. Avoid duplicate sends
 + Refactored AJP generator
 + Support TLS_DHE_RSA_WITH_AES_256_CBC_SHA
 + updated glassfish jasper to tag SJSAS-9_1-B25-EA-08_Nov_2006

jetty-6.0.2 - 22 November 2006
 + JETTY-118 ignore extra content after close.
 + JETTY-119 cleanedup Security optimizatoin
 + JETTY-123 handle windows UNC paths
 + JETTY-126 handle content > Integer.MAX_VALUE
 + JETTY-129 ServletContextListeners called after servlets are initialized
 + JETTY-151 Idle timeout only applies to blocking operations
 + JETTY-154 Cookies are double quotes only
 + JETTY-171 Fixed filter mapping
 + JETTY-172 use getName() instead of toString
 + JETTY-173 restore servletpath after dispatch
 + (re)make JAAS classes available to webapp classloader
 + add <Property> replacement in jetty xml config files
 + Added concept of bufferred endpoint
 + Added conversion Object -> ObjectName for the result of method calls made on
   MBeans
 + Added DataFilter configuration to cometd
 + added examples/test-jaas-webapp
 + Added extraClassPath to WebAppContext
 + Added hierarchical destroy of mbeans
 + Added ID constructor to AbstractSessionManager.Session
 + added isStopped() in LifeCycle and AbstractLifeCycle
 + Added override descriptor for deployment of RO webapps
 + Allow session cookie to be refreshed
 + alternate optimizations of writer (use -Dbuffer.writers=true)
 + Apply queryEncoding to getQueryString
 + CGI example in test webapp
 + change examples/test-jndi-webapp so it can be regularly built
 + Default soLinger is -1 (disabled)
 + ensure "" returned for ServletContext.getContextPath() for root context
 + ensure sessions nulled out on request recycle; ensure session null after
   invalidate
 + ensure setContextPath() works when invoked from jetty-web.xml
 + fixed NIO endpoint flush. Avoid duplicate sends
 + Fixed NPE in bio.SocketEndPoint.getRemoteAddr()
 + Fixed resource cache flushing
 + Fixed tld parsing for maven plugin
 + HttpGenerator can generate requests
 + Improved *-mbean.properties files and specialized some MBean
 + Major refactor of SelectChannel EndPoint for client selector
 + make .tag files work in packed wars
 + Moved all modules updates from 6.1pre2 to 6.0
 + Plugin shutdown context before stopping it.
 + Refactored session lifecycle and additional tests
 + release resource lookup in Default servlet
 + Reverted UnixCrypt to use coersions (that effected results)
 + Session IDs can change worker ID
 + Simplified ResourceCache and Default servlet
 + SocketConnector closes all connections in doStop
 + Support TLS_DHE_RSA_WITH_AES_256_CBC_SHA
 + updated glassfish jasper to tag SJSAS-9_1-B25-EA-08_Nov_2006
 + Upgraded session ID generation to use SecureRandom

jetty-5.1.14 - 09 August 2007
 + JETTY-155 force close with content length.
 + JETTY-369 failed state in Container
 + patched with correct version

jetty-5.1.13
 + Sourceforge 1648335: problem setting version for AJP13

jetty-5.1.12 - 22 November 2006
 + JETTY-154 Cookies ignore single quotes
 + Added support for TLS_DHE_RSA_WITH_AES_256_CBC_SHA
 + AJP protected against bad requests from mod_jk
 + Quote single quotes in cookies
 + Upgraded session ID generation to use SecureRandom

jetty-4.2.27 - 22 November 2006
 + AJP protected against bad requests from mod_jk
 + Upgraded session ID generation to use SecureRandom

jetty-6.1.0pre2 - 20 November 2006
 + Added extraClassPath to WebAppContext
 + Clean up jboss module licensing
 + Fixed resource cache flushing

jetty-6.1.0pre1 - 19 November 2006
 + JETTY-151 Idle timeout only applies to blocking operations
 + JETTY-171 Fixed filter mapping
 + JETTY-172 use getName() instead of toString
 + JETTY-173 restore servletpath after dispatch
 + Added extras/jboss
 + Added hierarchical destroy of mbeans
 + Added override descriptor for deployment of RO webapps
 + alternate optimizations of writer (use -Dbuffer.writers=true)
 + Fixed NPE in bio.SocketEndPoint.getRemoteAddr()
 + Major refactor of SelectChannel EndPoint for client selector
 + release resource lookup in Default servlet
 + Reverted UnixCrypt to use coersions (that effected results)
 + Simplified ResourceCache and Default servlet
 + Use ContextDeployer as main deployer in jetty.xml

jetty-6.1.0pre0 - 21 October 2006
 + JETTY-112 ContextHandler checks if started
 + JETTY-113 support optional query char encoding on requests
 + JETTY-114 removed utf8 characters from code
 + JETTY-115 Fixed addHeader
 + JETTY-118 ignore extra content after close.
 + JETTY-119 cleanedup Security optimizatoin
 + JETTY-121 init not called on externally constructed servlets
 + JETTY-123 handle windows UNC paths
 + JETTY-124 always initialize filter caches
 + JETTY-126 handle content > Integer.MAX_VALUE
 + JETTY-129 ServletContextListeners called after servlets are initialized
 + (re)make JAAS classes available to webapp classloader
 + add <Property> replacement in jetty xml config files
 + add a maven-jetty-jspc-plugin to do jspc precompilation
 + added cometd chat demo
 + Added concept of bufferred endpoint
 + Added conversion Object -> ObjectName for the result of method calls made on
   MBeans
 + Added DataFilter configuration to cometd
 + added examples/test-jaas-webapp
 + Added extras/setuid to support start as root
 + Added ID constructor to AbstractSessionManager.Session
 + added isStopped() in LifeCycle and AbstractLifeCycle
 + add hot deployment capability
 + AJP Connector
 + Allow session cookie to be refreshed
 + Apply queryEncoding to getQueryString
 + CGI example in test webapp
 + change examples/test-jndi-webapp so it can be regularly built
 + Default soLinger is -1 (disabled)
 + ensure "" returned for ServletContext.getContextPath() for root context
 + ensure sessions nulled out on request recycle; ensure session null after
   invalidate
 + ensure setContextPath() works when invoked from jetty-web.xml
 + Factored ErrorPageErrorHandler out of WebAppContext
 + fixed ClassCastException in JAASUserRealm.setRoleClassNames(String[])
 + fixed isUserInRole checking for JAASUserRealm
 + Fixed tld parsing for maven plugin
 + HttpGenerator can generate requests
 + Improved *-mbean.properties files and specialized some MBean
 + Improved charset handling in URLs
 + JETYY-120 SelectChannelConnector closes all connections on stop
 + make .tag files work in packed wars
 + minor optimization of bytes to UTF8 strings
 + Plugin shutdown context before stopping it.
 + Ported HtAccessHandler
 + Refactored ErrorHandler to avoid statics
 + Refactored session lifecycle and additional tests
 + Session IDs can change worker ID
 + SocketConnector closes all connections in doStop
 + Start of a client API
 + Transforming classloader does not transform resources.

jetty-5.1.11 - 08 October 2006
 + Default servlet only uses setContentLength on wrapped responses
 + Fixed AJP chunk header (1507377)
 + Fixed AJP handling of certificate length (1494939)
 + fixed ByteBufferOutputStream capacity calculation
 + Fixed order of destruction event calls
 + Fix to HttpOutputStream from M.Traverso

jetty-4.2.26 - 08 October 2006
 + Backport of AJP fixes

jetty-6.0.1 - 24 September 2006
 + JETTY-112 ContextHandler checks if started
 + JETTY-113 support optional query char encoding on requests
 + JETTY-114 removed utf8 characters from code
 + JETTY-115 Fixed addHeader
 + JETTY-121 init not called on externally constructed servlets
 + JETTY-124 always initialize filter caches
 + Factored ErrorPageErrorHandler out of WebAppContext
 + fixed ClassCastException in JAASUserRealm.setRoleClassNames(String[])
 + fixed isUserInRole checking for JAASUserRealm
 + Improved charset handling in URLs
 + JETYY-120 SelectChannelConnector closes all connections on stop
 + minor optimization of bytes to UTF8 strings
 + Refactored ErrorHandler to avoid statics

jetty-6.0.0 - 10 September 2006
 + Conveniance builder methods for listeners and filters
 + Plugin shutdown context before stopping it.
 + SocketConnector closes all connections in doStop
 + Transforming classloader does not transform resources.

jetty-6.0.0rc4 - 05 September 2006
 + JETTY-107 Poor cast in SessionDump demo.
 + bind jetty-env.xml entries to java:comp/env
 + Set charset on error pages

jetty-6.0.0rc3 - 01 September 2006
 + JETTY-68 Complete request after sendRedirect
 + JETTY-104 (raised glassfish ISSUE-1044) hide JSP forced path attribute
 + Avoid double error handling of Bad requests
 + don't warn for content length on head requests
 + JETTY-103
 + Less verbose handling of BadResources from bad URLs
 + Move MailSessionReference to org.mortbay.naming.factories
 + pulled 6.0.0 branch
 + Transferred the sslengine patch from the patches directory to extras

jetty-6.0.0rc2 - 25 August 2006
 + added org.apache.commons.logging package to system classes that can't be
   overridden by a webapp classloader
 + Destroy HttpConnection to improve buffer pooling
 + Direct buffer useage is optional
 + Fixed NPE when no resource cache
 + Moved more utility packagtes to the util jar
 + mvn -Djetty.port=x jetty:run uses port number given for the default
   connector
 + Refactored WebXmlConfiguration to allow custom web.xml resource
 + Timestamp in StdErrLog
 + use mvn -Dslf4j=false jetty:run to disable use of slf4j logging with
   jdk1.4/jsp2.0

jetty-6.0.0rc1 - 16 August 2006
 + JETTY-85 JETTY-86 (TrustManager and SecureRandom are now configurable;
   better handling of null/default values)
 + add <requestLog> config param to jetty plugin
 + added modules/spring with XmlBeanFactory configuration
 + Added simple ResourceHandler and FileServer example
 + added start of cometd implementation (JSON only)
 + added start of grizzly connector
 + Added TransformingWebAppClassLoader for spring 2.0 byte code modification
   support
 + Allow direct filling of buffers for uncached static content.
 + Change path mapping so that a path spec of /foo/* does not match /foo.bar :
   JETTY-88
 + -DSTOP.PORT must be specified.
 + fixed bug that caused Response.setStatus to ignore the provided message
 + Fixed FD leak for bad TCP acks. JETTY-63
 + JETTY-87
 + JETTY-90
 + JETTY-91
 + moved optional modules to extras
 + parse jsp-property-group in web.xml for additional JSP servlet mappings
 + protected setContentType from being set during include
 + refactored resource cache
 + removed org.mortbay. from context system classes configuration
 + removed support for lowResources from SelectChannelConnector
 + Support for binding References and Referenceables and javax.mail.Sessions in
   JNDI

jetty-6.0.0rc0 - 07 July 2006
 + add ability to have a lib/ext dir from which to recursively add all jars and
   zips to the classpath
 + Added 8 random letters&digits to Jetty-generated tmp work dir name to ensure
   uniqueness
 + added html module from jetty 5 - but deprecated until maintainer found
 + Added maximum limit to filter chain cache.
 + added setters and getters on SessionManager API for session related config:
   cookie name, url parameter name, domain, max age and path.
 + added StatisticsHandler and statistics on Connector.
 + Added WebAppContextClassLoader.newInstance to better support exensible
   loaders.
 + allow <key> or <name> in <systemProperty> for plugin
 + changed ServletContext.getResourcePaths()  to not return paths containing
   double slashes
 + change name of generated tmp directory to be
   "Jetty_"+host+"_"+port+"_"+contextpath+"_"+virtualhost
 + change prefix from "jetty6" to just "jetty" for plugin: eg is now mvn
   jetty:run
 + Cleaned up idle expiry.
 + ContextHandlerCollection addContext and setContextClass
 + Discard excess bytes in header buffer if connection is closing
 + Do not wrap EofException with EofException
 + ensure explicitly set tmp directory called "work" is not deleted on exit
 + Ensure mvn clean cleans the build
 + ensure war is only unpacked if war is newer than "work" directory
 + fixed classesDirectory param for maven plugin to be configurable
 + fixed HttpGenerator convertion of non UTF-8: JETTY-82
 + immutable getParameterMap()
 + patch to allow Jetty to use JSP2.1 from Glassfish instead of Jasper from
   Tomcat
 + refactor HttpChannelEndPoint in preparation for SslEngine
 + reverse order for destroy event listeners
 + simplified jetty.xml with new constructor injections
 + Simplified Servlet Context API
 + Simplify runtime resolution of JSP library for plugin
 + Ssl algorithm taken from system property
 + support <load-on-startup> for SingleThreadModel
 + support graceful shutdown
 + Threadpool does not need to be a LifeCycle
 + Updated javax code from
   http://svn.apache.org/repos/asf/tomcat/tc6.0.x/trunk/java/javax@417727

jetty-6.0.0beta17 - 01 June 2006
 + Added clover reports and enough tests to get >50% coverage
 + Added config to disable file memory mapped buffers for windows
 + Added Request.isHandled()
 + BoundedThreadPool.doStop waits for threads to complete
 + Connector lowResourceMaxIdleTime  implemented.
 + ContextHandler.setConnectors replace setHosts
 + Default servlet checks for aliases resources
 + don't reset headers during forward
 + Fixed IE SSL issue.
 + Flush will flush all bytes rather than just some.
 + Implemented runAs on servlets
 + Protected WEB-INF and META-INF
 + Recovered repository from Codehaus crash
 + Refactored Synchronization of SelectChannelConnector

jetty-6.0.0beta16 - 12 May 2006
 + remove a couple of System.err.printlns
 + replace backwards compativle API in UrlEncoded

jetty-6.0.0beta15 - 11 May 2006
 + Added <scanTargets> parameter to allow other locations to scan for plugin
 + Added automatic scan of all WEB-INF/jetty-*.xml files for plugin
 + Added embedded examples
 + Added Server attribute org.mortbay.jetty.Request.maxFormContentSize
 + Added taglib resources to 2.1 jsp api jar
 + Added ThrottlingFilter and fixed race in Continuations
 + Added --version to start.jar
 + ContextHandler.setContextPath can be called after start.
 + don't accept partial authority in request line.
 + enforce 204 and 304 have no content
 + Fixed handling of params after forward
 + Improved HttpException
 + improved MBeanContainer object removal
 + improved MBean names
 + improved support for java5 jconsole
 + Major refactor to simplify Server and handler hierarchy
 + Moved more resources to resources
 + readded BoundedThreadPool shrinking (and then fixed resulting deadlock)
 + removed SelectBlockingChannelConnector (unmaintained)
 + Renamed NotFoundHandler to DefaultHandler
 + Reset of timer task clears expiry
 + Session scavenger threads from threadpool
 + setSendServerVersion method added to Server to control sending of Server:
   http header
 + Simplified DefaultServlet static content buffering
 + Thread names include URI if debug set

jetty-6.0.0beta14 - 09 April 2006
 + added configurability for webdefault.xml in maven plugin
 + Added Jasper 2.1 as jesper (jasper without JCL)
 + added jetty-util.jar module
 + Added JSP 2.1 APIs from apache
 + added ProxyServlet
 + added reset to Continuation
 + added support for stopping jetty using "java -jar start.jar --stop"
 + adding InvokerServlet
 + Change tmp dir of plugin to work to be in line with jetty convention
 + fixed forward bug (treated as include)
 + fixed HttpField iterator
 + fixed priority of port from url over host header
 + ignore dirs and files that don't exist in plugin scanner
 + implemented request.isUserInRole
 + improved contentType handling and test harness
 + Modify plugin to select JSP impl at runtime
 + moved test webapps to examples directory
 + securityHandler removed if not used.
 + Started readding logging to jesper using jdk logging
 + stop JDBCUserRealm coercing all credentials to String
 + Use start.config to select which JSP impl at runtime based on jdk version

jetty-6.0.0beta12 - 16 March 2006
 + Added JSP2.0 demos to test webapp
 + Added provider support to SslListener
 + Fixed error handling in error page
 + Fixed JettyPlus for root contexts
 + Fixed maven plugin JNDI for redeploys
 + Fixed tld discovery for plugin (search dependencies)
 + Log ERROR for runtimeExceptions
 + Upgraded jasper to 5.5.15

jetty-6.0.0beta11 - 14 March 2006
 + Added HttpURI and improved UTF-8 parsing.
 + added JAAS
 + added missing Configurations for maven plugin
 + added patch to use joda-time
 + added webapp-specific JNDI entries
 + fixed ; decoding in URIs
 + fixed FORM authentication
 + moved dtd and xsd to standard javax location
 + refactored configuration files and start()
 + refactored session ID management
 + refactored writers and improved UTF-8 generation.

jetty-6.0.0beta10 - 25 February 2006
 + added getLocalPort() to connector
 + Added support for java:comp/env
 + Added support for pluggable transaction manager
 + Additional accessors for request logging
 + Fixed content-type for range requests
 + Fixed default servlet handling of includes
 + Fix for myfaces and include with close
 + Fix for sf1435795 30sec delay from c taylor
 + Fix http://jira.codehaus.org/browse/JETTY-6. hi byte reader
 + Fix sf1431936 don't chunk the chunk
 + Forward masks include attributes and vice versa
 + Updates javax to MR2 release

jetty-6.0.0beta9 - 09 February 2006
 + Added CGI servlet.
 + Added request log.
 + Added TLD tag listener handling.
 + Continuation cleanup
 + Fixed dispatch of wrapped requests.
 + Fixed double flush of short content.
 + fixed setLocale bug sf1426940
 + Fixed unraw decoding of query string
 + Force a tempdir to be set.
 + Force jasper scratch dir.
 + PathMap for direct context mapping.
 + Refactored chat demo and upgraded prototype.js

jetty-6.0.0beta8 - 24 January 2006
 + conveniance addHandler removeHandler methods
 + fixed bug in overloaded write method on HttpConnection (reported against
   Tapestry4.0)
 + fixed dispatch of new session problem. sf:1407090
 + Handle pipeline requests without hangs
 + hid org.apache.commons.logging and org.slf4j packages from webapp
 + improve buffer return mechanism.
 + improved caching of content types
 + maven-jetty6-plugin: ensure compile is done before invoking jetty
 + maven-jetty6-plugin: support all types of artifact dependencies
 + maven-jetty6-plugin stopped transitive inclusion of log4j and
   commons-logging from commons-el for jasper
 + patch to remove spurious ; in HttpFields
 + reinstated rfc2616 test harness
 + Removed queue from thread pool.

jetty-6.0.0Beta7
 + Faster header name lookup
 + Fixed infinite loop with chunk handling
 + maven-jetty6-plugin added tmpDirectory property
 + maven-jetty6-plugin stopped throwing an error if there is no target/classes
   directory
 + null dispatch attributes not in names
 + reduced info verbosity
 + removed singleton Container

jetty-6.0.0Beta6
 + Fixed issue with blocking reads
 + Fixed issue with unknown headers
 + optimizations

jetty-6.0.0Beta5
 + Added management module for mbeans
 + Fixed writer char[] creations
 + Moved to SVN

jetty-6.0.0Beta4
 + CVE-2006-2758 Fixed JSP visibility security issue.
 + Improved jetty-web.xml access to org.mortbay classes.
 + Jasper 5.5.12
 + System property support in plugin

jetty-6.0.0Beta3
 + Fixed classloader issue with server classes
 + Fixed error in block read
 + Named dispatch.

jetty-6.0.0Beta2
 + Improved buffer return
 + Improved reuse of HttpField values and cookies.
 + loosely coupled with JSP servlet
 + loosely coupled with SLF4J
 + merged util jar back into jetty jar
 + Simpler continuation API

jetty-6.0.0Beta1
 + Error pages
 + Implemented all listeners
 + maven2 plugin
 + Multiple select sets
 + refactored start/stop
 + Servlet 2.5 API
 + shutdown hook
 + SSL connector
 + Virtual hosts

jetty-6.0.0Beta0
 + Dispatcher parameters
 + Fixed blocking read
 + Maven 2 build
 + UTF-8 encoding for URLs

jetty-6.0.0APLPA3
 + Added demo for Continuations
 + Jasper and associated libraries.

jetty-6.0.0ALPHA2
 + Continuations - way cool way to suspend a request and retry later.
 + Dispatchers
 + Security

jetty-6.0.0ALPHA1
 + Filters
 + web.xml handling

jetty-6.0.0ALPHA0
 + file may be sent as sent is a single operation.
 + Improved "dependancy injection" and "inversion of control" design of
   components
 + Improved "interceptor" design of handlers
 + Missing Request Dispatchers
 + Missing Security
 + Missing war support
 + Missing web.xml based configuration
 + Optional use of NIO Buffering so that efficient direct buffers and memory
   mapped files can be used.
 + Optional use of NIO gather writes, so that for example a HTTP header and a
   memory mapped
 + Optional use of NIO non-blocking scheduling so that threads are not
   allocated per connection.
 + Smart split buffer design allows large buffers to only be allocated to
   active connections. The resulting memory savings allow very large buffers to
   be used, which increases the chance of efficient asynchronous flushing and
   of avoiding chunking.
 + Totally rearchitected and rebuilt, so 10 years of cruft could be removed!

jetty-5.1.11RC0 - 05 April 2006
 + Added provider support to SslListener
 + Fixed AJP handling of ;jsessionid.
 + force close with shutdownOutput for win32
 + improved contentType param handling
 + logging improvements for servlet and runtime exceptions
 + NPE protection if desirable client certificates
 + stop JDBCUserRealm forcing all credentials to be String

jetty-5.1.10 - 05 January 2006
 + Fixed path aliasing with // on windows.
 + Fix for AJP13 with encoded path
 + Fix for AJP13 with multiple headers
 + Put POST content default back to iso_8859_1. GET is UTF-8 still
 + Remove null dispatch attributes from getAttributeNames

jetty-4.2.25 - 04 January 2006
 + Fixed aliasing of // for win32

jetty-5.1.9 - 07 December 2005
 + Fixed wantClientAuth(false) overriding netClientAuth(true)

jetty-6.0.0betaX
 + See http://jetty.mortbay.org/jetty6 for 6.0 releases

jetty-5.1.8 - 07 December 2005
 + Fixed space in URL issued created in 5.1.6

jetty-5.1.7 - 07 December 2005

jetty-5.1.7rc0 - 06 December 2005
 + better support for URI character encodings
 + char encoding for MultiPartRequest
 + fixed merging of POST params in dispatch query string.
 + improved server stats
 + JSP file servlet mappings copy JspServlet init params.
 + Prefix servlet context logs with org.mortbay.jetty.context
 + protect from NPE in dispatcher getValues
 + Updated to 2.6.2 xerces
 + use commons logging jar instead of api jar.

jetty-5.1.6 - 18 November 2005
 + CVE-2006-2758 Fixed JSP visibility security issue.
 + Improved jetty-web.xml access to org.mortbay classes.

jetty-5.1.5 - 10 November 2005
 + Improved mapping of JSP files.
 + Improved shutdown hook
 + Improved URL Decoding

jetty-5.1.5rc2 - 07 October 2005
 + ProxyHandler can handle chained proxies
 + public ServerMBean constructor
 + ReFixed merge of Dispatcher params
 + Response.setLocale will set locale even if getWriter called.
 + Reverted dispatcher params to RI rather than spec behaviour.
 + unsynchronized ContextLoader
 + UTF-8 encoding for URLs

jetty-5.1.5rc1 - 23 August 2005
 + Encoded full path in ResourceHandler directory listing
 + Fixed 100-continues with chunking and early commit
 + Fixed illegal state with chunks and 100 continue - Tony Seebregts
 + Fixed merge of Dispatcher parameters
 + Fixed PKCS12Import input string method
 + handle extra params after charset in header
 + Release commons logging factories when stopping context.
 + upgraded to commons logging 1.0.4

jetty-5.1.5rc0 - 16 August 2005
 + Applied ciphersuite patch from tonyj
 + Authenticators use servlet sendError
 + CGI sets SCRIPT_FILENAME
 + Expect continues only sent if input is read.
 + Facade over commons LogFactory so that discovery may be avoided.
 + Fixed component remove memory leak for stop/start cycles
 + HttpTunnel timeout
 + NPE protection for double stop in ThreadedServer

jetty-5.1.4 - 05 June 2005
 + Change JAAS impl to be more flexible on finding roles
 + Fixed FTP close issue.
 + ModelMBean handles null signatures
 + NPE protection in ThreadedServer
 + set classloader during webapp doStop
 + setup MX4J with JDK1.5 in start.config

jetty-5.1.4rc0 - 19 April 2005
 + Allow ServletHandler in normal HttpContext again.
 + HttpServer delegates component handling to Container.
 + More protection from null classloaders.
 + ServletHttpContext correctly calls super.doStop.
 + Stop start.jar putting current directory on classpath.
 + Turn off web.xml validation for JBoss.

jetty-5.1.3 - 07 April 2005
 + Some minor code janitorial services

jetty-4.2.24 - 07 April 2005

jetty-5.1.3rc4 - 31 March 2005
 + Allow XmlConfiguration to start with no object.
 + make java:comp/env immutable for webapps as per J2EE spec
 + Moved servlet request wrapping to enterContextScope for geronimo security
 + refixed / mapping for filters
 + rework InitialContextFactory to use static 'default' namespace
 + updated to mx4j 3.0.1

jetty-5.1.3rc3 - 20 March 2005
 + fixed "No getter or setter found" mbean errors
 + removed accidental enablement of DEBUG for JettyPlus jndi in
   log4j.properties

jetty-5.1.3rc2 - 16 March 2005
 + Fixed context to _context refactory error
 + Updated JSR154Filter for ERROR dispatch

jetty-5.1.3rc1 - 13 March 2005
 + Fixed principal naming in FormAuthenticator
 + Fixed typo in context-param handling.
 + JettyPlus updated to JOTM 2.0.5, XAPool 1.4.2
 + update to demo site look and feel.

jetty-4.2.24rc1
 + Fixed principal naming in FormAuthenticator

jetty-5.1.3rc0 - 08 March 2005
 + Added logCookie and logLatency support to NCSARequestLog
 + Added new JAAS callback to allow extra login form fields in authentication
 + Added simple xpath support to XmlParser
 + Added SslListener for 1.4 JSSE API.
 + Added TagLibConfiguration to search for listeners in TLDs.
 + Allow system and server classes to be configured for context loader.
 + Fixed HTAccess crypt salt handling.
 + Fixed JSR154 error dispatch with explicit pass of type.
 + Fixed moderate load preventing ThreadPool shrinking.
 + Fixed rollover filename format bug
 + Flush filter chain caches on servlet/filter change
 + IOException if EOF read during chunk.

jetty-4.2.24rc0 - 08 March 2005
 + Added logCookie and logLatency support to NCSARequestLog
 + Back ported Jetty 5 ThreadedServer and ThreadPool

jetty-5.1.2 - 18 January 2005
 + Added id and ref support to XmlConfiguration
 + Apply patch #1103953
 + Cleaned up AbstractSessionManager synchronization.
 + Fixed potential concurrent login problem with JAAS

jetty-4.2.23 - 16 January 2005
 + Cleaned up AbstractSessionManager synchronization.
 + Fixed potential concurrent login problem with JAAS

jetty-5.1.2pre0 - 22 December 2004
 + Added global invalidation to AbstractSessionManager
 + Fixed case of Cookie parameters
 + Fixed suffix filters
 + Modified useRequestedID handling to only use IDs from other contexts
 + Support Secure and HttpOnly in session cookies
 + UnavailableException handling from handle

jetty-4.2.23RC0 - 17 December 2004
 + Added LogStream to capture stderr and stdout to logging
 + Build unsealed jars
 + LineInput handles readers with small internal buffer
 + Support Secure and HttpOnly in session cookies

jetty-5.1.1 - 01 December 2004

jetty-5.1.1RC1
 + Allow double // within URIs
 + Applied patch for MD5 hashed credentials for MD5
 + Fixed ordering of filters with multiple interleaved mappings.
 + Made more WebApplicationHandle configuration methods public.
 + Some minor findbugs code cleanups

jetty-5.1.1RC0 - 17 November 2004
 + added new contributed shell start/stop script
 + excluded ErrorPageHandler from standard build in extra/jdk1.2 build
 + fix commons logging imports to IbmJsseListener
 + fix for adding recognized EventListeners

jetty-5.1.0 - 14 November 2004

jetty-5.1.RC1 - 24 October 2004
 + Allow JSSE listener to be just confidential or just integral.
 + Allow multiple accepting threads
 + Build unsealed jars
 + default / mapping does not apply to Filters
 + Fixed NPE for null contenttype
 + improved clean targets
 + many minor cleanups suggested from figbug utility
 + Partially flush writers on every write so content length can be detected.
 + when committed setHeader is a noop rather than IllegalStateException

jetty-5.1.RC0 - 11 October 2004
 + Added filter chain cache
 + Added JSR77 servlet statistic support
 + Added LifeCycle events and generic container.
 + Added LogStream to capture stderr and stdout to logging
 + Fixed HTAccessHandler
 + Fixed many minor issues from J2EE 1.4 TCK testing See sf.net bugs 1031520 -
   1032205
 + JBoss 4.0.0 support
 + LineInput handles readers with small internal buffer
 + Refactored, simplified and optimized HttpOutputStream
 + Refactored webapp context configurations
 + Upgraded to ant-1.6 for jasper

jetty-5.0.0 - 10 September 2004

jetty-5.0.RC4 - 05 September 2004
 + Fixed configuration of URL alias checking
 + JettyJBoss: Use realm-name from web.xml if present, otherwise use
   security-domain from jboss-web.xml

jetty-5.0.RC3 - 28 August 2004
 + Added parameters for acceptQueueSize and lowResources level.
 + Always say close for HTTP/1.0 non keep alive.
 + Changed default URI encoding to UTF-8
 + DIGEST auth handles qop, stale and maxNonceAge.
 + fixed deployment of ejb-link elements in web.xml with jboss
 + fixed jaas logout for jetty-jboss
 + Fixes to work with java 1.5
 + JettyPlus addition of pluggable DataSources
 + JettyPlus upgrade to XAPool 1.3.3. and HSQLDB 1.7.2
 + Less verbose warning for non validating xml parser.
 + Update to jasper 5.0.27

jetty-4.2.22
 + Added parameters for acceptQueueSize and lowResources level.
 + fixed deployment of ejb-link elements in web.xml for jboss
 + fixed jaas logout for jetty-jboss integration

jetty-5.0.RC2 - 02 July 2004
 + add JMX support for JettyPlus
 + add listing of java:comp/env for webapp with JMX
 + Default servlet may use only pathInfo for resource
 + Error dispatchers are always GET requests.
 + Fixed DIGEST challenge delimiters
 + Fixed JAAS logout
 + Fixed no-role security constraint combination.
 + Fixed session leak in j2ee
 + Fix to use runas roles during servlet init and destroy
 + HTAccess calls UnixCrypt correctly
 + HttpContext sendError for authentication errors
 + integrated jetty-jboss with jboss-3.2.4
 + make choice of override of JNDI ENC entries: config.xml or web.xml
 + OPTIONS works for all URLs on default servlet

jetty-4.2.21 - 02 July 2004
 + add JMX support for JettyPlus
 + add listing of java:comp/env for webapp with JMX
 + Fixed JAAS logout
 + integrated jetty-jboss with jboss-3.2.4
 + make choice of override of JNDI ENC entries: config.xml or web.xml

jetty-5.0.RC1 - 24 May 2004
 + added extra/etc/start-plus.config to set up main.class for jettyplus
 + Changed to apache 2.0 license
 + Fixed HTTP tunnel timeout setting.
 + FORM auth redirects to context on a re-auth
 + Handle multiple virutal hosts from JBoss 3.2.4RC2
 + Improved handling of exception from servlet init.
 + maxFormContentLength may be unlimited with <0 value

jetty-4.2.20 - 22 May 2004
 + Fixed HTTP tunnel timeout setting.
 + FORM auth redirects to context on a re-auth
 + Improved handling of exception from servlet init.
 + maxFormContentLength may be unlimited with <0 value

jetty-5.0.0RC0 - 07 April 2004
 + Changed dist naming convention to lowercase
 + Default servlet respectes servlet path
 + Factored out XML based config from WebApplicationContext
 + Fixed Default servlet for non empty servlet paths
 + Fixed DOS problem
 + Fixed j2se 1.3 problem with HttpFields
 + Fixed setCharacterEncoding for parameters.
 + Forced close of connections over stop/start
 + Improved RequestLog performance
 + ProxiedFor field support added to NCSARequestLog
 + ServletContext attributes wrap HttpContext attributes.
 + Updated jasper to 5.0.19
 + Updated JettyPlus to JOTM 1.4.3 (carol-1.5.2, xapool-1.3.1)
 + Updated mx4j to V2
 + Worked around bad jboss URL handler in XMLParser

jetty-4.2.20RC0 - 07 April 2004
 + Changed dist naming convention to lowercase
 + Fixed Default servlet for non empty servlet paths
 + Forced close of connections over stop/start
 + HttpFields protected headers
 + ProxiedFor field support added to NCSARequestLog
 + Worked around bad jboss URL handler in XMLParser

jetty-4.2.19 - 19 March 2004
 + Fixed DOS attack problem

jetty-5.0.beta2 - 12 February 2004
 + Added experimental NIO listeners again.
 + Added log4j context repository to jettyplus
 + Added skeleton JMX MBean for jetty plus
 + FileResource better handles non sun JVM
 + Fixed busy loop in threadpool run
 + fixed filter dispatch configuration.
 + Fixed HEAD with empty chunk bug.
 + Fixed jetty.home/work handling
 + fixed lazy authentication with FORMs
 + Fixed SessionManager init
 + Fixed setDate thread safety
 + Improved low thread handling
 + Monitor closes socket before exit
 + NPE guard for no-listener junit deployment
 + Reorganized ServletHolder init
 + RequestDispatcher uses request encoding for query params
 + Updated to Japser 5.0.16

jetty-4.2.18 - 01 March 2004
 + Added log4j context repository to jettyplus
 + Default servlet respectes servlet path
 + Fixed j2se 1.3 problem with HttpFields
 + Improved log performance
 + NPE guard for no-listener junit deployment
 + Suppress some more IOExceptions

jetty-4.2.17 - 01 February 2004
 + Fixed busy loop in threadpool run
 + Reorganized ServletHolder init

jetty-4.2.16 - 30 January 2004
 + FileResource better handles non sun JVM
 + Fixed HttpTunnel for JDK 1.2
 + Fixed setDate multi-cpu race
 + Improved low thread handling
 + Monitor closes socket before exit
 + RequestDispatcher uses request encoding for query params
 + Update jasper to 4.1.29

jetty-5.0.beta1 - 24 December 2003
 + Added patch for JBoss realm single sign on
 + Env variables for CGI
 + Fixed UnixCrypt handling in HTAccessHandler
 + Removed support for old JBoss clustering
 + Reorganized FAQ
 + SecurityConstraints not reset by stop() on custom context

jetty-4.2.15 - 24 December 2003
 + Added patch for JBoss realm single sign on
 + Environment variables for CGI
 + Fixed UnixCrypt handling in HTAccessHandler
 + Removed support for old JBoss clustering
 + SecurityConstraints not reset by stop() on custom context

jetty-5.0.beta0 - 22 November 2003
 + Added MsieSslHandler to handle browsers that don't grok persistent SSL (msie
   5)
 + Added org.mortbay.http.ErrorHandler for error pages.
 + Allow per listener handlers
 + Expire pages that contain set-cookie as per RFC2109 recommendation
 + Fixed init race in HttpFields cache
 + JBoss integration uses writer rather than stream for XML config handling
 + PathMap uses own Map.Entry impl for IBM JVMs
 + Protect ThreadPool.run() from interrupted exceptions
 + Removed support for HTTP trailers
 + Removed the CMR/CMP distributed session implementation
 + Respect content length when decoding form content.
 + Updated jasper to 5.0.14beta
 + Use ${jetty.home}/work or WEB-INF/work for temp directories if present

jetty-4.2.15rc0 - 22 November 2003
 + Added org.mortbay.http.ErrorHandler for error pages.
 + JsseListener checks UserAgent for browsers that can't grok persistent SSL
   (msie5)
 + PathMap uses own Map.Entry impl for IBM JVMs
 + Protect ThreadPool.run() from interrupted exceptions
 + Race in HttpFields cache
 + Removed the CMR/CMP distributed session implementation
 + Use ${jetty.home}/work or WEB-INF/work for temp directories if present

jetty-4.2.14 - 04 November 2003
 + Expire pages that contain set-cookie as per RFC2109 recommendation
 + Fixed NPE in SSO
 + JBoss integration uses writer rather than stream for XML config handling
 + respect content length when decoding form content.

jetty-5.0.alpha3 - 19 October 2003
 + Allow customization of HttpConnections
 + Failed requests excluded from duration stats
 + FileClassPath derived from walk of classloader hierarchy.
 + Fixed null pointer if no sevices configured for JettyPlus
 + Implemented security constraint combinations
 + Lazy authentication if no auth constraint.
 + Priority added to ThreadPool
 + replaced win32 service with http://wrapper.tanukisoftware.org
 + Restore servlet handler after dispatch
 + Reworked Dispatcher to better support cross context sessions.
 + Set TransactionManager on JettyPlus datasources and pools
 + Updated jasper and examples to 5.0.12
 + Use File.toURI().toURL() when jdk 1.2 alternative is available.

jetty-4.2.14RC1 - 19 October 2003
 + Added UserRealm.logout and arrange for form auth
 + Allow customization of HttpConnections
 + Failed requests excluded from
 + Reworked Dispatcher to better support cross context sessions.

jetty-4.2.14RC0 - 07 October 2003
 + Build fileclasspath from a walk of the classloaders
 + cookie timestamps are in GMT
 + Correctly setup context classloader in cross context dispatch.
 + Fixed comments with embedded double dashes on jettyplus.xml file
 + Fixed handling of error pages for IO and Servlet exceptions
 + Fixed null pointer if no sevices configured for JettyPlus
 + Priority on ThreadedServer
 + Put a semi busy loop into proxy tunnels for IE problems
 + replaced win32 service with http://wrapper.tanukisoftware.org
 + Set TransactionManager on JettyPlus datasources and pools
 + updated extra/j2ee to jboss 3.2.1+
 + Use File.toURI().toURL() when jdk 1.2 alternative is available.

jetty-5.0.alpha2 - 19 September 2003
 + Correctly setup context classloader in cross context dispatch.
 + Fixed error page handling of IO and Servlet exceptions.
 + Implemented ServletRequestListeners as optional filter.
 + Improved JMX start.
 + minor doco updates.
 + Moved error page mechanism to be webapp only.
 + moved mailing lists to sourceforge.
 + MultipartRequest supports multi value headers.
 + Put a semi busy loop into proxy tunnels for IE problems
 + Turn off validation without non-xerces errors
 + Update jakarta examples
 + Use commons logging.
 + Use log4j if extra is present.
 + XML entity resolution uses URLs not Resources

jetty-5.0.alpha1 - 12 August 2003
 + Implemented locale encoding mapping.
 + Improve combinations of Security Constraints
 + Server javadoc from war
 + Switched to mx4j
 + Synced with 4.2.12
 + Updated to Jasper 5.0.7

jetty-5.0.alpha0 - 16 July 2003
 + Compiled against 2.4 servlet spec.
 + Implemented Dispatcher forward attributes.
 + Implemented filter-mapping <dispatcher> element
 + Implemented remote/local addr/port methods
 + Implemented setCharaterEncoding
 + Updated authentication so that a normal Principal is used.
 + updated to jasper 5.0.3

jetty-4.2.12 - 12 August 2003
 + Added missing S to some OPTIONS strings
 + Added open method to threaded server.
 + Fixed MIME types for chemicals
 + Fixed parameter ordering for a forward request.
 + Fixed up HTAccessHandler
 + FORMAuthenticator does 403 with empty error page.
 + Improved error messages from ProxyHandler
 + Padding for IE in RootNotFoundHandler
 + Removed protection of org.mortbay.http attributes
 + Restore max inactive interval for session manager

jetty-4.2.11 - 12 July 2003
 + Branched for Jetty 5 development.
 + Cookie params all in lower case.
 + Fixed race in servlet initialization code.
 + Prevent AJP13 from reordering query.
 + Simplified AJP13 connection handling.
 + Support separate Monitor class for start

jetty-4.2.10 - 07 July 2003
 + Updates to JettyPlus documentation
 + Updates to Jetty tutorial for start.jar, jmx etc

jetty-4.2.10pre2 - 04 July 2003
 + Addition of mail service for JettyPlus
 + Allow multiple security-role-ref elements per servlet.
 + Cleaned up alias handling.
 + Confidential redirection includes query
 + Fixed cookie handling for old cookies and safari
 + handle multiple security role references
 + Handle Proxy-Connection better
 + Improvement to JettyPlus config of datasources and connection pools
 + Many improvements in JettyPlus java:comp handling
 + Move to Service-based architecture for JettyPlus features
 + Re-implementation of JNDI
 + Restricted ports in ProxyHandler.
 + Session statistics
 + URI always encodes %
 + XmlConfiguration can get/set fields.

jetty-4.2.10pre1 - 02 June 2003
 + Added SSO implementation for FORM authentication.
 + Added stop.jar
 + Deprecated forced chunking.
 + Fixed AJP13 protocol so that request/response header enums are correct.
 + Fixed form auth success redirect after retry, introduced in 4.2.9rc1
 + Fixed JSP code visibility problem introduced in Jetty-4.2.10pre0
 + Fixed problem with shared session for inter context dispatching.
 + Form authentication remembers URL over 403
 + ProxyHandler has improved test for request content
 + Removed support of org.mortbay.http.User role.
 + Trace support is now optional (in AbstractHttpHandler).
 + WebApplicationContext does not reassign defaults descriptor value.

jetty-4.2.10pre0 - 05 May 2003
 + Added ability to override jetty startup class by using -Djetty.server on
   runline
 + Allow params in form auth URLs
 + Allow query params in error page URL.
 + Apply the append flag of RolloverFileOutputStream constructor.
 + Fixed CRLF bug in MultiPartRequest
 + Fixed table refs in JDBCUserRealm.
 + FORM Authentication is serializable for session distribution.
 + getAuthType maps the HttpServletRequest final strings.
 + getAuthType returns CLIENT_CERT instead of CLIENT-CERT.
 + Incorporate jetty extra and plus into build
 + Incorporate JettyPlus jotm etc into build.
 + Integrate with JAAS
 + Massive reorg of the CVS tree.
 + Merge multivalued parameters in dispatcher.
 + Moved Log4JLogSink into JettyPlus
 + New look and feel for www site.
 + ProxyHandler checks black and white lists for Connect.
 + RolloverFileOutputStream manages Rollover thread.
 + Updated to jasper jars from tomcat 4.1.24
 + Warn if max form content size is reached.

jetty-4.2.9 - 19 March 2003
 + Conditional headers check after /dir to /dir/ redirection.

jetty-4.2.9rc2 - 16 March 2003
 + Added X-Forwarded-For header in ProxyHandler
 + Allow dispatch to j_security_check
 + Defaults descriptor has context classloader set.
 + Fixed build.xml for source release
 + Made rfc2068 PUT/POST Continues support optional.
 + Updated included jmx jars

jetty-4.2.9rc1 - 06 March 2003
 + Added requestlog to HttpContext.
 + Added support for client certs to AJP13.
 + Added trust manager support to SunJsseListener.
 + Allow delegated creation of WebApplication derivations.
 + Check Data contraints before Auth constraints
 + Cleaned up includes
 + Dump servlet can load resources for testing now.
 + Optional 2.4 behaviour for sessionDestroyed notification.
 + ProxyHandler has black and white host list.
 + Reduced default context cache sizes (Total 1MB file 100KB).
 + Removed checking for single valued headers.
 + Stop proxy url from doing user interaction.
 + Turn request log buffering off by default.
 + Work around URLClassloader not handling leading /

jetty-4.2.8_01 - 18 February 2003
 + Added a SetResponseHeadersHandler, can set P3P headers etc.
 + Added MBeans for Servlets and Filters
 + Added option to resolve remote hostnames.  Defaults to off.
 + Default servlet can have own resourceBase.
 + Fixed AdminServlet to handle changed getServletPath better.
 + Fixed CGI servlet to handle multiple headers.
 + Moved ProxyHandler to the src1.4 tree
 + Patched first release of 4.2.8 with correct version number
 + ProxyHandler can handle multiple cookies.
 + Rolled back SocketChannelListener to 4.2.5 version

jetty-4.2.7 - 04 February 2003
 + Changed PathMap to conform to / getServletPath handling.
 + Fixed proxy tunnel for non persistent connections.
 + Relative sendRedirect handles trailing / correctly.
 + Upgraded to JSSE 1.0.3_01 to fix security problem.

jetty-4.2.6 - 24 January 2003
 + Added HttpContext.setHosts to restrict context by real interface.
 + Added MBeans for session managers
 + Added version to HttpServerMBean.
 + Allow AJP13 buffers to be resized.
 + ClientCertAuthentication updates request.
 + Fixed LineInput problem with expanded buffers.
 + Fixed rel sendRedirects for root context.
 + Improved SocketChannelListener contributed.
 + Improved synchronization on AbstractSessionManager.

jetty-4.2.5 - 14 January 2003
 + Added Log4jSink in the contrib directory.
 + Don't process conditional headers and ranges for includes
 + Fixed pathParam bug for ;jsessionid
 + Fixed requestedSessionId null bug.

jetty-4.2.4 - 04 January 2003
 + Added MBeans for handlers
 + Clear context attributes after stop.
 + Clear context listeners after stop.
 + Fixed stop/start handling of servlet context
 + HTAccessHandler checks realm as well as htpassword.
 + Reuse empty LogSink slots.
 + Upgraded jasper to 4.1.18
 + Use requestedSessionId as default session ID.

jetty-4.2.4rc0 - 12 December 2002
 + Added gzip content encoding support to Default and ResourceHandler
 + Added HttpContext.flushCache
 + Allow empty host header.
 + Avoid optional 100 continues.
 + Better access to session manager.
 + Character encoding handling for GET requests.
 + Cheap clear for HttpFields
 + Cleaned up some unused listener throws.
 + Code logs objects rather than strings.
 + Configurable root context.
 + Dir listings in UTF8
 + Fixed dir listing from jars.
 + Fixed isSecure and getScheme for SSL over AJP13
 + Fixed setBufferSize NPE.
 + Handle = in param values.
 + Handle chunked form data.
 + Implemented RFC2817 CONNECT in ProxyHandler
 + Improved ProxyHandler to the point is works well for non SSL.
 + Improved setBufferSize handling
 + Limit form content size.
 + Removed container transfer encoding handling.
 + RootNotFoundHandler to help when no context found.
 + Simplified ThreadedServer
 + Update jasper to 4.1.16beta
 + Use ThreadLocals for ByteArrayPool to avoid synchronization.
 + Use Version to reset HttpFields

jetty-4.2.3 - 02 December 2002
 + Added links to Jetty Powered page
 + added main() to org.mortbay.http.Version
 + Added PKCS12Import class to import PKCS12 key directly
 + Check form authentication config for leading /
 + Cleaner servlet stop to avoid extra synchronization on handle
 + Clean up of ThreadedServer.stop()
 + Fixed some typos
 + org.mortbay.http.HttpContext.FileClassPathAttribute
 + Removed aggressive threadpool shrinkage to avoid deadlock on SMP machines.
 + removed old HttpContext.setDirAllowed()
 + Updated bat scripts

jetty-4.2.2 - 20 November 2002
 + Added EOFException to reduce log verbosity on closed connections.
 + Avoided bad buffer status after closed connection.
 + Fixed handling of empty headers
 + Fixed sendRedirect for non http URLS
 + Fixed URI query recycling for persistent connections

jetty-4.2.1 - 18 November 2002
 + Fixed bad optimization in UrlEncoding
 + Re-enabled UrlEncoding test harnesses

jetty-4.2.0 - 16 November 2002
 + Added definitions for RFC2518 WebDav response codes.
 + Added upload demo to dump servlet.
 + Fixed AJP13 buffer size.
 + Fixed include of Invoker servlet.
 + Fixed remove listener bug.
 + Lowercase jsessionid for URLs only.
 + Made NCSARequestLog easier to extend.
 + Many more optimizations.
 + Removed jasper source and just include jars from 4.1.12
 + Removed remaining non portable getBytes() calls
 + Restrict 304 responses to seconds time resolution.
 + Use IE date formatting for speed.
 + Worked around JVM1.3 bug for JSPs

jetty-4.1.4 - 16 November 2002
 + Fixed ContextLoader parent delegation bug
 + Fixed Invoker servlet for RD.include
 + Fixed remove SocketListener bug.
 + Last modified handling uses second resolution.
 + Made NCSARequestLog simpler to extend.
 + Use IE date formatting for last-modified efficiency

jetty-4.2.0rc1 - 02 November 2002
 + Fixed ContextLoader parent delegation bug.
 + Fixed directory resource bug in JarFileResource.
 + Fixed firstWrite after commit.
 + Fixed problem setting the size of chunked buffers.
 + Fixed servletpath on invoker for named servlets.
 + Improved handling of 2 byte encoded characters within forms.
 + Recycling of HttpFields class.
 + Removed unused Servlet and Servlet-Engine headers.
 + Renamed Filter application methods.
 + Support default mime mapping defined by *

jetty-4.2.0rc0 - 24 October 2002
 + Added authenticator to admin.xml
 + Added embedded iso8859 writer to HttpOutputStream.
 + Fixed RolloverFileOutputStream without date.
 + Fixed SessionManager initialization
 + Fixed Session timeout NPE.
 + Greg's birthday release!
 + Removed duplicate classes from jar

jetty-4.1.3 - 24 October 2002
 + Added authenticator to admin.xml
 + Fixed RolloverFileOutputStream without date.
 + Fixed SessionManager initialization
 + Fixed Session timeout NPE.

jetty-4.0.6 - 24 October 2002
 + Clear interrupted status in ThreadPool
 + fixed forward attribute handling for jsp-file servlets
 + Fixed forward query string handling
 + Fixed handling of relative sendRedirect after forward.
 + Fixed setCharacterEncoding to work with getReader
 + Fixed virtual hosts temp directories.

jetty-4.2.0beta0 - 13 October 2002
 + 404 instead of 403 for WEB-INF requests
 + Allow %3B encoded ; in URLs
 + Allow anonymous realm
 + Build without jmx
 + Fixed bad log dir detection
 + Fixed caching of directories to avoid shared buffers.
 + Fix Session invalidation bug
 + FORM authentication sets 403 error page
 + getNamedDispatcher(null) returns containers default servlet.
 + New AJP13 implementation.
 + New Buffering implementation.
 + New ThreadPool implementation.
 + Removed Dispatcher dependancy on ServletHttpContext
 + Stop/Start filters in declaration order.
 + unquote charset in content type
 + Update jasper to 4.1.12 tag
 + Use "standard" names for default,jsp & invoker servlets.

jetty-4.1.2 - 13 October 2002
 + 404 instead of 403 for WEB-INF requests
 + Allow %3B encoded ; in URLs
 + Allow anonymous realm
 + Build without jmx
 + Fixed bad log dir detection
 + Fixed caching of directories to avoid shared buffers.
 + Fix Session invalidation bug
 + FORM authentication sets 403 error page
 + getNamedDispatcher(null) returns containers default servlet.
 + Some AJP13 optimizations.
 + Stop/Start filters in declaration order.
 + unquote charset in content type
 + Update jasper to 4.1.12 tag
 + Use "standard" names for default,jsp & invoker servlets.

jetty-4.1.1 - 30 September 2002
 + Avoid setting sotimeout for optimization.
 + Cache directory listings.
 + Deprecated maxReadTime.
 + Fixed client scripting vulnerability with jasper2.
 + Fixed infinite recursion in JDBCUserRealm
 + Fixed space in resource name handling for jdk1.4
 + Merged LimitedNCSARequestLog into NCSARequestLog
 + Moved launcher/src to src/org/mortbay/start
 + String comparison of If-Modified-Since headers.
 + Touch files when expanding jars

jetty-4.1.0 - 22 September 2002
 + Added LimitedNCSARequestLog
 + ClientCertAuthenticator protected from null subjectDN
 + Context Initparams to control session cookie domain, path and age.
 + Fixed AJP13 handling of mod_jk loadbalancing.
 + Fixed CGI+windows security hole.
 + Handle unremovable tempdir.
 + NCSARequest log buffered default
 + Sorted directory listings.
 + Stop servlets in opposite order to start.
 + Use javac -target 1.2 for normal classes
 + WEB-INF/classes before WEB-INF/lib

jetty-4.1.0RC6 - 14 September 2002
 + Added logon.jsp for no cookie form authentication.
 + Added redirect to welcome file option.
 + Cleaned up old debug.
 + Don't URL encode FileURLS.
 + Encode URLs of Authentication redirections.
 + Extended Session API to pass request for jvmRoute handling
 + Fixed problem with AJP 304 responses.
 + FormAuthenticator uses normal redirections now.
 + Improved HashUserRealm doco
 + Improved look and feel of demo

jetty-4.1.0RC5 - 08 September 2002
 + Added commandPrefix init param to CGI
 + AJP13Listener caught up with HttpConnection changes.
 + Implemented security-role-ref for isUserInRole.
 + Improved errors for misconfigured realms.
 + More cleanup in ThreadPool for idle death.

jetty-4.1.0RC4 - 30 August 2002
 + Created statsLock sync objects to avoid deadlock when stopping.
 + Included IbmJsseListener in the contrib directory.
 + Reverted to 302 for all redirections as all clients do not understand 303
 + Updated jasper2 to 4.1.10 tag.

jetty-4.1.0RC3 - 28 August 2002
 + Added buffering to request log
 + Added defaults descriptor to addWebApplications.
 + addWebApplications encodes paths to allow for spaces in file names.
 + Allow FORM auth pages to be within security constraint.
 + Allow WebApplicationHandler to be used with other handlers.
 + Created and integrated the Jetty Launcher
 + Fixed security problem for suffix matching with trailing "/"
 + Improved handling of path encoding in Resources for bad JVMs
 + Improved handling of PUT,DELETE & MOVE.
 + Made Resource canonicalize it's base path for directories

jetty-4.1.0RC2 - 20 August 2002
 + Added HttpListener.bufferReserve
 + Build ant, src and zip versions with the release
 + Clear interrupted status in ThreadPool
 + Conveninace setClassLoaderJava2Compliant method.
 + Fixed HttpFields cache overflow
 + Improved ByteArrayPool to handle multiple sizes.
 + Updated to Jasper2 (4_1_9 tag)
 + Use system line separator for log files.

jetty-4.1.0RC1 - 11 August 2002
 + Fixed forward query string handling
 + Fixed forward to jsp-file servlet
 + Fixed getContext to use canonical contextPathSpec
 + Fixed handling of relative sendRedirect after forward.
 + Fixed setCharacterEncoding to work with getReader
 + Improved the return codes for PUT
 + Made HttpServer serializable
 + Updated international URI doco
 + Updated jasper to CVS snapshot 200208011920

jetty-4.1.0RC0 - 31 July 2002
 + Added DigestAuthenticator
 + Added ExpiryHandler which can set a default Expires header.
 + Added link to a Jetty page in Korean.
 + Changed URI default charset back to ISO_8859_1
 + Fixed getRealPath for packed war files.
 + Restructured Password into Password and Credentials

jetty-4.0.5 - 31 July 2002
 + Fixed getRealPath for packed war files.
 + Fixed getRequestURI for RD.forward to return new URI.
 + Reversed order of ServletContextListener.contextDestroyed calls

jetty-4.1.B1 - 19 July 2002
 + Added 2.4 Filter dispatching support.
 + Added PUT,DELETE,MOVE support to webapps.
 + CGI Servlet, catch and report program invocation failure status.
 + CGI Servlet, fixed suffix mapping problem.
 + CGI Servlet, pass all HTTP headers through.
 + CGI Servlet, set working directory for exec
 + Moved dynamic servlet handling to Invoker servlet.
 + Moved webapp resource handling to Default servlet.
 + Reversed order of ServletContextListener.contextDestroyed calls
 + Sessions create attribute map lazily.
 + Support HTTP/0.9 requests again
 + Updated mini.http.jar target

jetty-3.1.9 - 15 July 2002
 + Allow doHead requests to be forwarded.
 + Fixed race in ThreadPool for minThreads <= CPUs

jetty-4.1.B0 - 13 July 2002
 + Added work around of JDK1.4 bug with NIO listener
 + Allow filter init to access servlet context methods.
 + close rather than disable stream after forward
 + Fixed close problem with load balancer.
 + Fixed ThreadPool bug when minThreads <= CPUs
 + Keep notFoundContext out of context mapping lists.
 + mod_jk FAQ
 + Moved 3rd party jars to $JETTY_HOME/ext
 + NCSARequestLog can log to stderr
 + RD.forward changes getRequestURI.
 + Stopped RD.includes closing response.

jetty-4.1.D2 - 24 June 2002
 + Added AJP13 listener for apache integration.
 + Allow comma separated cookies and headers
 + Back out Don't chunk 30x empty responses.
 + Better recycling of HttpRequests.
 + Conditional header tested against welcome file not directory.
 + Fixed ChunkableOutputStream close propagation
 + Improved ThreadedServer stopping on bad networks
 + Moved jmx classes from JettyExtra to here.
 + Protect session.getAttributeNames from concurrent modifications.
 + Set contextloader during webapplicationcontext.start
 + Support trusted external authenticators.
 + Use ThreadLocals to avoid unwrapping in Dispatcher.

jetty-4.0.4 - 23 June 2002
 + Back out change: Don't chunk 30x empty responses.
 + Conditional header tested against welcome file not directory.
 + Improved ThreadedServer stopping on bad networks

jetty-4.0.3 - 20 June 2002
 + Allow comma separated cookies and headers
 + Allow session manager to be initialized when set.
 + Better recycling of HttpRequests.
 + Fixed close propagation of on-chunked output streams
 + Fixed japanese locale
 + Force security disassociation.
 + Protect session.getAttributeNames from concurrent modifications.
 + WebapplicationContext.start sets context loader

jetty-4.1.D1 - 08 June 2002
 + Added simple buffer pool.
 + Don't chunk 30x empty responses.
 + Fixed /foo/../bar// bug in canonical path.
 + Fixed "" contextPaths in Dispatcher.
 + Merged ResourceBase and SecurityBase into HttpContext
 + Recycle servlet requests and responses
 + Removed race for the starting of session scavaging
 + Reworked output buffering to keep constant sized buffers.

jetty-4.0.2 - 06 June 2002
 + Added OptimizeIt plug
 + Don't chunk 30x empty responses.
 + Fixed /foo/../bar// bug in canonical path.
 + Fixed "" contextPaths in Dispatcher.
 + Fixed handler/context start order.
 + Fixed web.dtd references.
 + Removed race for the starting of session scavaging

jetty-3.1.8 - 06 June 2002
 + Fixed /foo/../bar// bug in canonical path.
 + Fixed no slash context redirection.
 + Fixed singled threaded dynamic servlets
 + Made SecurityConstraint.addRole() require authentication.

jetty-4.1.D0 - 05 June 2002
 + Added OptimizeIt plug.
 + Added TypeUtil to reduce Integer creation.
 + BRAND NEW WebApplicationHandler & WebApplicationContext
 + Experimental CLIENT-CERT Authenticator
 + Fixed handler/context start order.
 + Fixed web.dtd references.
 + General clean up of the API for for MBean getters/setters.
 + Removed the HttpMessage facade mechanism
 + Restructured ResourceHandler into ResourceBase
 + The 4.1 Series started looking for even more performance within the 2.3
   specification.

jetty-4.0.1 - 22 May 2002
 + Fixed "null" return from getRealPath
 + Fixed contextclassloader on ServletContextEvents.
 + OutputStreamLogSink config improvements
 + Support graceful stopping of context and server.
 + Updated jasper to 16 May snapshot

jetty-4.0.1RC2 - 14 May 2002
 + 3DES Keylength was being reported as 0. Now reports 168 bits.
 + Added confidential and integral redirections to HttpListener
 + Better error for jre1.3 with 1.4 classes
 + Cleaned up RD query string regeneration.
 + Fixed ServletResponse.reset() to resetBuffer.
 + Implemented the run-as servlet tag.

jetty-4.0.1RC1 - 29 April 2002
 + Avoid flushes during RequestDispatcher.includes
 + Better handling if no realm configured.
 + Expand ByteBuffer full limit with capacity.
 + Fixed double filtering of welcome files.
 + Fixed FORM authentication auth of login page bug.
 + Fixed setTempDirectory creation bug
 + Improved flushing of chunked responses

jetty-4.0.1RC0 - 18 April 2002
 + AbstractSessionManager sets contextClassLoader for scavanging
 + Added extract arg to addWebApplications
 + DTD allows static "Get" and "Set" methods to be invoked.
 + Extended facade interfaces to HttpResponse.sendError
 + Fixed delayed response bug: Stopped HttpConnection consuming input from
   timedout connection.
 + Moved basic auth handling to HttpRequest
 + Pass pathParams via welcome file forward for jsessionid
 + Set thread context classloader for webapp load-on-startup inits
 + Updated Jasper to CVS snapshot from Apr 18 18:50:59 BST 2002

jetty-4.0.0 - 22 March 2002
 + Added IPAddressHandler for IP restrictions
 + Jetty.sh cygwin support
 + Minor documentation updates.
 + Updated contributors.
 + Updated tutorial configure version

jetty-4.0.RC3 - 20 March 2002
 + Changed html attribute order for mozilla quirk.
 + ContextInitialized notified before load-on-startup servlets.
 + Fixed ZZZ offset format to +/-HHMM
 + JDBCUserRealm instantiates JDBC driver
 + Suppress WriterOutputStream warning.
 + Updated history

jetty-4.0.RC2 - 12 March 2002
 + Added experimental nio SocketChannelListener
 + Added skeleton load balancer
 + Disabled the Password EXEC mechanism by default
 + Dont try to extract directories
 + Fixed column name in JDBCUserRealm
 + Fixed empty referrer in NCSA log.
 + Fixed security constraint problem with //
 + Fixed version for String XmlConfigurations
 + Removed redundant sessionID check.
 + Remove last of the Class.forName calls.
 + Security FAQ

jetty-3.1.7 - 12 March 2002
 + Fixed security problem with constraints being bypassed with // in URLs

jetty-4.0.RC1 - 06 March 2002
 + Added ContentEncodingHandler for compression.
 + Call response.flushBuffer after service to flush wrappers.
 + contextDestroyed event sent before destruction.
 + Contributors list as an image to prevent SPAM!
 + Empty suffix for temp directory.
 + FileResource depends less on FilePermissions.
 + Fixed filter vs forward bug.
 + Fixed recursive DEBUG loop in Logging.
 + Improved efficiency of quality list handling
 + Minor changes to make HttpServer work on J2ME CVM
 + Simplified filter API to chunkable streams
 + Updated jetty.sh to always respect arguments.
 + Warn if jdk 1.4 classes used on JVM <1.4
 + WebApplication will use ContextLoader even without WEB-INF directory.
 + XmlParser is validating by default. use o.m.x.XmlParser.NotValidating
   property to change.

jetty-3.1.6 - 28 February 2002
 + Dispatcher.forward dispatches directly to ServletHolder to avoid premature
   exception handling.
 + Empty suffix for temp directory.
 + Fixed HttpFields remove bug
 + HttpResponse.sendError makes a better attempt at finding an error page.
 + Implemented 2.3 clarifications to security constraint semantics PLEASE
   REVIEW YOUR SECURITY CONSTRAINTS (see README).
 + LineInput can handle any sized marks
 + Set Listeners default scheme

jetty-4.0.B2 - 25 February 2002
 + Accept jetty-web.xml or web-jetty.xml in WEB-INF
 + Added LoggerLogSink to direct Jetty Logs to JDK1.4 Log.
 + Added optional JDK 1.4 src tree
 + Added org.mortbay.http.JDBCUserRealm
 + Added String constructor to XmlConfiguration.
 + Adjust servlet facades for welcome redirection
 + Improved default jetty.xml
 + Improve handling of unknown URL protocols.
 + Init classloader for JspServlet
 + Minor Jasper updates
 + o.m.u.Frame uses JDK1.4 stack frame handling
 + Simplified addWebApplication
 + Slightly more agressive eating unused input from non persistent connection.
 + Start ServletHandler as part of the FilterHandler start.
 + User / mapping rather than /* for servlet requests to static content

jetty-4.0.B1 - 13 February 2002
 + Added setClassLoader and moved getFileClassPath to HttpContext
 + getRequestURI returns encoded path
 + HttpConnection always eats unused bodies
 + LineInput waits for LF after CF if seen CRLF before.
 + Merged HttpMessage and Message
 + Servlet request destined for static content returns paths as default servlet
 + Suppress error only for IOExceptions not derivitives.
 + Updated examples webapp from tomcat
 + WriterOutputStream so JSPs can include static resources.

jetty-4.0.B0 - 04 February 2002
 + Added AbstractSessionManager
 + Added Array element to XMLConfiguration
 + Added hack for compat tests in watchdog for old tomcat stuff
 + Added index links to tutorial
 + Allow listener schemes to be set.
 + Common handling of TRACE
 + Factor out RolloverFileOutputStream from OutputStreamLogSink
 + Fixed HttpFields remove bug
 + Handle special characters in resource file names better.
 + HttpContext destroy
 + Implemented 2.3 security constraint semantics PLEASE REVIEW YOUR SECURITY
   CONSTRAINTS (see README).
 + Reduce object count and add hash width to StringMap
 + Release process builds JettyExtra
 + Removed triggers from Code.
 + Remove request logSink and replace with RequestLog using
   RolloverFileOutputStream
 + Renamed getHttpServers and added setAnonymous
 + Stop and remove NotFound context for HttpServer
 + Support Random Session IDs in HashSessionManager.
 + Updated crimson to 1.1.3
 + Updated tutorial and FAQ
 + Welcome file dispatch sets requestURI.
 + Welcome files may be relative

jetty-4.0.D4 - 14 January 2002
 + Added BlueRibbon campaign.
 + Added isAuthenticated to UserPrincipal
 + Extract WAR files to standard temp directory
 + Fixed noaccess auth demo.
 + FORM auth caches UserPrincipal
 + Handle ServletRequestWrappers for Generic Servlets
 + Improved handling of UnavailableException
 + Improved HttpResponsse.sendError error page matching.
 + Prevent output after forward
 + RequestDispatcher uses cached resources for include
 + URI uses UTF8 for % encodings.

jetty-4.0.D3 - 31 December 2001
 + cookies with maxAge==0 expire on 1 jan 1970
 + Corrected name to HTTP_REFERER in CGI Servlet.
 + DateCache handles misses better.
 + Fixed cached filter wrapping.
 + Fixed ContextLoader lib handling.
 + Fixed getLocale again
 + Fixed UrlEncoding for % + combination.
 + Generalized temp file handling
 + HttpFields uses DateCache more.
 + Made Frame members private and fixed test harness
 + Moved admin port to 8081 to avoid JBuilder
 + Patch jasper to 20011229101000
 + Removed limits on mark in LineInput.
 + setCookie always has equals

jetty-3.1.5 - 11 December 2001
 + Allow POSTs to static resources.
 + Branched at Jetty_3_1
 + cookies with maxage==0 expired 1 jan 1970
 + Fixed ChunableInputStream.resetStream bug.
 + Fixed formatting of redirectURLs for NS4.08
 + Ignore IO errors when trying to persist connections.
 + setCookie always has equals for cookie value
 + stopJob/killStop in ThreadPool to improve stopping ThreadedServer on some
   platforms.

jetty-4.0.D2 - 02 December 2001
 + added addWebApplications auto discovery
 + Allow POSTs to static resources.
 + Better handling of charset in form encoding.
 + Disabled last forwarding by setPath()
 + Fixed ChunableInputStream.resetStream bug.
 + Fixed formatting of redirect URLs.
 + Ignore IO errors when trying to persist connections.
 + Made the root context a webapplication.
 + Moved demo docroot/servlets to demo directory
 + New event model to decouple from beans container.
 + Removed Demo.java (until updated).
 + Removed ForwardHandler.
 + Removed most of the old doco, which needs to be rewritten and added again.
 + Removed Request set methods (will be replaced)
 + Restructured for demo and test hierarchies
 + stopJob/killStop in ThreadPool to improve stopping ThreadedServer on some
   platforms.

jetty-4.0.D1 - 14 November 2001
 + Added Context and Session Event Handling
 + Added FilterHandler
 + Added FilterHolder
 + Changed HandlerContext to HttpContext
 + Fixed bug with request dispatcher parameters
 + Fixed ServletHandler with no servlets
 + New ContextLoader implementation.
 + New Dispatcher implementation
 + Removed destroy methods
 + Simplified MultiMap
 + Simplified ServletHandler

jetty-4.0.D0 - 06 November 2001
 + 1.2 JSP API
 + 2.3 Servlet API
 + Added examples webapp from tomcat4
 + Branched at Jetty_3_1
 + Branched from Jetty_3_1 == Jetty_3_1_4
 + Jasper from tomcat4
 + Start SessionManager abstraction.

jetty-3.1.4 - 06 November 2001
 + Added RequestLogFormat to allow extensible request logs.
 + Default PathMap separator changed to ":,"
 + Generate session unbind events on a context.stop()
 + getRealPath accepts \ URI separator on platforms using \ file separator.
 + HTAccessHandler made stricter on misconfiguration
 + PathMap now ignores paths after ; or ? characters.
 + Remove old stuff from contrib that had been moved to extra
 + Support the ZZZ timezone offset format in DateCache

jetty-3.1.3 - 26 October 2001
 + Allow a per context UserRealm instance.
 + Correct dispatch to error pages with javax attributes set.
 + Fixed binary files in CVS
 + Fixed several problems with external role authentication. Role
   authentication in JBoss was not working correctly and there were possible
   object leaks. The fix required an API change to UserPrinciple and UserRealm.
 + Fixed Virtual hosts to case insensitive.
 + Fix security problem with trailing special characters. Trailing %00 enabled
   JSP source to be viewed or other servlets to be bypassed.
 + Improved FORM auth handling of role failure.
 + Improved Jasper debug output.
 + Improved ThreadedServer timeout defaults
 + PathMap spec separator changed from ',' to ':'. May be set with
   org.mortbay.http.PathMap.separators system property.
 + Upgraded JSSE to 1.0.2

jetty-3.1.2 - 13 October 2001
 + Added run target to ant
 + Added ServletHandler.sessionCount()
 + Added short delay to shutdown hook for JVM bug.
 + Changed 304 responses for Opera browser.
 + Changed JSESSIONID to jsessionid
 + Changed unsatisfiable range warnings to debug.
 + Fixed attr handling in XmlParser.toString
 + Fixed authentication role handling in FORM auth.
 + Fixed double entry on PathMap.getMatches
 + Fixed FORM Authentication username.
 + Fixed NotFoundHandler handling of unknown methods
 + Fixed request log date formatting
 + Fixed servlet handling of non session url params.
 + FORM authentication passes query params.
 + Further improvements in handling of shutdown.
 + Log OK state after thread low warnings.

jetty-3.1.1 - 27 September 2001
 + Correctly ignore auth-constraint descriptions.
 + Fixed jar manifest format - patched 28 Sep 2001
 + Fixed ServletRequest.getLocale().
 + Handle requestdispatcher during init.
 + Reduced verbosity of bad URL errors from IIS virus attacks
 + Removed incorrect warning for WEB-INF/lib jar files.
 + Removed JDK 1.3 dependancy
 + Use lowercase tags in html package to be XHTML-like.

jetty-3.1.0 - 21 September 2001
 + Added HandlerContext.registerHost
 + Added long overdue Tutorial documentation.
 + Fix .. handling in URI
 + Fix flush on stop bug in logs.
 + Fix FORM authentication on exact patterns
 + Fix Jetty.bat for spaces.
 + Fix param reading on CGI servlet
 + Fix REFFERER in CGI
 + Fix ResourceHandler cache invalidate.
 + Fix reuse of Resource
 + Fix ServletResponse.setLocale()
 + Improved closing of listeners.
 + Improved some other documentation.
 + New simplified jetty.bat
 + Optimized List creation
 + Removed win32 service.exe

jetty-3.1.rc9 - 02 September 2001
 + Added bin/orgPackage.sh script to change package names.
 + Added handlerContext.setClassPaths
 + Added lowResourcePersistTimeMs for more graceful degradation when we run out
   of threads.
 + Added support for Nonblocking listener.
 + Changed to org.mortbay domain names.
 + Fixed bug with non cookie sessions.
 + Fixed handling of rel form authentication URLs
 + Format cookies in HttpFields.
 + Form auth login and error pages relative to context path.
 + Patched Jasper to 3.2.3.

jetty-3.1.rc8 - 22 August 2001
 + Added HttpServer statistics
 + Allow contextpaths without leading /
 + Allow per context log files.
 + Buffer allocation
 + Don't add notfound context.
 + Fixed handling of default mime types
 + ISO8859 conversion
 + Many major and minor optimizations:
 + OutputStreamLogSink replaces WriterLogSink
 + Removed race from dynamic servlet initialization.
 + Separation of URL params in HttpHandler API.
 + StringMap
 + Support WEB-INF/web-jetty.xml configuration extension for webapps
 + Updated sponsors page
 + URI canonicalPath
 + URI pathAdd

jetty-3.1.rc7 - 09 August 2001
 + Added doco for Linux port redirection.
 + Added FORM authentication.
 + Added method handling to HTAccessHandler.
 + Added shutdown hooks to Jetty.Server to trap Ctl-C
 + Added UML diagrams to Jetty architecture documentation.
 + Added utility methods to ServletHandler for wrapping req/res pairs.
 + Don't persist connections if low on threads.
 + Dump Servlet displays cert chains
 + Fix bug in sendRedirect for HTTP/1.1
 + Fixed bug with session ID generation.
 + Fixed redirect handling by the CGI Servlet.
 + Fixed request.getPort for redirections from 80
 + Optimized HttpField handling to reduce object creatiyon.
 + Remove old context path specs
 + ServletRequest SSL attributes in line with 2.2 and 2.3 specs.
 + ServletResponse.sendRedirect puts URLs into absolute format.
 + Use Enumerations to reduce conversions for servlet API.

jetty-3.1.rc6 - 10 July 2001
 + Added Client authentication to the JsseListener
 + Added debug and logging config example to demo.xml
 + Added Get element to the XmlConfiguration class.
 + Added getResource to HandleContext.
 + Added Static calls to the XmlConfiguration class.
 + Avoid script vulnerability in error pages.
 + Cleaned up destroy handling of listeners and contexts.
 + Cleaned up Win32 Service server creation.
 + Close persistent HTTP/1.0 connections on missing Content-Length
 + Fixed a problem with Netscape and the acrobat plugin.
 + Fixed bug in B64Code. Optimised B64Code.
 + Fixed XmlParser to handle xerces1.3 OK
 + Improved debug output for IOExceptions.
 + Improved SSL debugging information.
 + KeyPairTool can now load cert chains.
 + KeyPairTool is more robust to provider setup.
 + Moved gimp image files to Jetty3Extra
 + Moved mime types and encodings to property bundles.
 + Removed getConfiguration from LifeCycleThread to avoid JMX clash.
 + RequestDispatch.forward() uses normal HandlerContext.handle() path if
   possible.
 + Updated to JSSE-1.0.2, giving full strength crypto.
 + Use exec for jetty.sh run
 + WebApps initialize resourceBase before start.
 + Win32 Service uses Jetty.Server instead of HttpServer.

jetty-3.1.rc5 - 01 May 2001
 + Added build target for mini.jetty.jar - see README.
 + Added HTaccessHandler to authenitcate against apache .htaccess files.
 + Added query param handling to ForwardHandler
 + Added ServletHandler().setUsingCookies().
 + Added UnixCrypt support to c.m.U.Password
 + Fixed EOF handling in MultiPartRequest.
 + Fixed forwarding to null pathInfo requests.
 + Fixed handling of empty responses at header commit.
 + Fixed handling of multiple cookies.
 + Fixed jetty.bat classpath problems.
 + Fixed ResourceHandler handling of ;JSESSIONID
 + Fixed sync of ThreadPool idleSet.
 + Major restructing of packages to separate servlet dependancies. c.m.XML  -
   moved XML dependant classes from c.m.Util c.m.HTTP - No servlet or XML
   dependant classes: c.m.Jetty.Servlet - moved from c.m.HTTP.Handler.Servlet
   c.m.Servlet - received some servlet dependant classes from HTTP.
 + Optimized canonical path calculations.
 + Request log contains bytes actually returned.
 + Warn and close connections if content-length is incorrectly set.

jetty-3.0.6 - 26 April 2001
 + Fixed EOF handlding in MultiPartRequest.
 + Fixed forwarding to null pathInfo requests.
 + Fixed handling of empty responses at header commit.
 + Fixed ResourceHandler handling of ;JSESSIONID
 + Fixed sync of ThreadPool idleSet.
 + Load-on-startup the JspServlet so that precompiled servlets work.

jetty-3.1.rc4 - 14 April 2001
 + Added idle thread getter to ThreadPool.
 + Include full versions of JAXP and Crimson
 + Load-on-startup the JspServlet so that precompiled servlets work.
 + Removed stray debug println from the Frame class.

jetty-3.0.5 - 14 April 2001
 + Branched from 3.1 trunk to fix major errors
 + Created better random session ID
 + Don't chunk if content length is known.
 + fixed getLocales handling of quality params
 + Fixed LineInput bug EOF
 + Fixed session invalidation unbind notification to conform with spec
 + Improved flush ordering for forwarded requests.
 + Load-on-startup the JspServlet so that precompiled servlets work.
 + Resource handler strips URL params like JSESSION.
 + Turned off range handling by default until bugs resolved

jetty-3.1.rc3 - 09 April 2001
 + Added ContentHandler Observer to XmlParser.
 + Allow webapp XmlParser to be observed for ejb-ref tags etc.
 + Cleaned up handling of exceptions thrown by servlets.
 + Created better random session ID
 + Frame handles more JIT stacks.
 + Handle zero length POSTs
 + Implemented multi-part ranges so that acrobat is happy.
 + Improved flush ordering for forwarded requests.
 + Improved ThreadPool stop handling
 + Simplified multipart response class.
 + Start session scavenger if needed.

jetty-3.1.rc2 - 30 March 2001
 + Added MultiException to throw multiple nested exceptions.
 + added options to turn off ranges and chunking to support acrobat requests.
 + fixed getLocales handling of quality params
 + fixed getParameter(name) handling for multiple values.
 + Improved handling of Primitive classes in XmlConfig
 + Improved logging of nested exceptions.
 + Lifecycle.start() may throw Exception
 + Only one instance of default MIME map.
 + Renamed getConnection to getHttpConnection
 + Use reference JAXP1.1 for XML parsing.y
 + Version 1.1 of configuration dtd supports New objects.

jetty-3.1.rc1 - 18 March 2001
 + Added Jetty documentation pages from JettyWiki
 + Cleaned up build.xml script
 + Fixed problem with ServletContext.getContext(uri)
 + Minimal handling of Servlet.log before initialization.
 + Moved JMX and SASL handling to Jetty3Extra release
 + Resource handler strips URL params like JSESSION.
 + Various SSL cleanups

jetty-3.1.rc0 - 23 February 2001
 + Added JMX management framework.
 + Changed getter and setter methods that did not conform to beans API.
 + Dynamic servlets may be restricted to Context classloader.
 + Fixed init order for unnamed servlets.
 + Fixed session invalidation unbind notification to conform with spec
 + Improved handling of primitives in utilities.
 + Improved InetAddrPort and ThreadedServer to reduce DNS lookups.
 + Reoganized packages to allowed sealed Jars
 + Socket made available via HttpConnection.
 + Use Thread context classloader as default context loader parent.

jetty-3.0.4 - 23 February 2001
 + Fixed LineInput bug with split CRLF.

jetty-3.0.3 - 03 February 2001
 + Allow Log to be disabled before initialization.
 + Fixed handling of directories without trailing /
 + Fixed pipelined request buffer bug.
 + Handle empty form content without exception.
 + Implemented web.xml servlet mapping to a JSP
 + Included new Jetty Logo

jetty-3.0.2 - 13 January 2001
 + Added etc/jetty.policy as example policy file.
 + Allow '+' in path portion of a URL.
 + Context specific security permissions.
 + Greatly improved buffering in ChunkableOutputStream
 + Handle unknown status reasons in HttpResponse
 + Ignore included response updates rather than IllegalStateException
 + Improved HTML.Block efficiency
 + Improved jetty.bat
 + Improved jetty.sh
 + Padded error bodies for IE bug.
 + Removed classloading stats which were causing circular class loading
   problems.
 + Replaced ResourceHandler FIFO cache with LRU cache.
 + Restructured demo site pages.
 + Try ISO8859_1 encoding if can't find ISO-8859-1

jetty-3.0.1 - 20 December 2000
 + Fixed value unbind notification for session invalidation.
 + Removed double null check possibility from ServletHolder

jetty-3.0.0 - 17 December 2000
 + Fixed rel path handling in default configurations.
 + Fixed rollover bug in WriterLogSink
 + Fixed taglib parsing
 + Fixed WriterLogSink init bug
 + Improved dtd resolution in XML parser.
 + Improved jetty.sh logging
 + Optional extract war files.
 + Use inner class to avoid double null check sync problems

jetty-3.0.0.rc8 - 13 December 2000
 + Added ForwardHandler
 + Change PathMap handling of /* to give precedence over suffix mapping.
 + Default log options changed if in debug mode.
 + Forward to welcome pages rather than redirect.
 + getSecurityHandler creates handler at position 0.
 + Improved exit admin handling
 + Jetty.Server catches init exceptions per server
 + Mapped *.jsp,*.jsP,*.jSp,*.jSP,*.Jsp,*.JsP,*.JSp,*.JSP
 + Optional alias checking added to FileResource.  Turned on by default on all
   platforms without the "/" file separator.
 + Patched jasper to tomcat 3.2.1
 + Protected META-INF as well as WEB-INF in web applications.
 + Removed security constraint on demo admin server.
 + Removed some unused variables.
 + Removed special characters from source.
 + SysV unix init script
 + Tidied handling of ".", ".." and "//" in resource paths

jetty-3.0.0.rc7 - 02 December 2000
 + Added Com.mortbay.HTTP.Handler.Servlet.Context.LogSink attribute to Servlet
   Context. If set, it is used in preference to the system log.
 + Added NotFoundServlet
 + Added range handling to ResourceHandler.
 + Allow dynamic servlets to be served from /
 + Auto add a NotFoundHandler if needed.
 + CGI servlet handles not found better.
 + Changed log options to less verbose defaults.
 + Conditionals apply to puts, dels and moves in ResourceHandler.
 + Depreciated RollOverLogSink and moved functionality to an improved
   WriterLogSink.
 + Don't set MIME-Version in response.
 + Double null lock checks use ThreadPool.__nullLockChecks.
 + Extended security constraints (see README and WebApp Demo).
 + Fixed security problem with lowercase WEB-INF uris on windows.
 + Handle multiple inits of same servlet class.
 + PUT, MOVE disabled in WebApplication unless defaults file is passed.
 + Set the AcceptRanges header.
 + Set thread context classloader during handler start/stop calls.
 + Split Debug servlet out of Admin Servlet.
 + ThreadedServer.forceStop() now makes a connection to itself to handle
   non-premptive close.
 + URIs accept all characters < 0xff.
 + WEB-INF protected by NotFoundServlet rather than security constraint.

jetty-3.0.0.rc6 - 20 November 2000
 + Added ServletWriter that can be disabled.
 + Added Win32 service support
 + Admin servlet uses unique links for IE.
 + Allow HttpMessage state to be manipulated.
 + Allow load-on-startup with no content.
 + Allow multiple set cookies.
 + Corrected a few of the many spelling mistakes.
 + don't include classes in release.
 + Don't set connection:close for normal HTTP/1.0 responses.
 + Don't start HttpServer log sink on add.
 + Fixed RollOverFileLogSink bug with extra log files.
 + Implemented customizable error pages.
 + Implemented resource aliases in HandlerContext - used by Servlet Context
 + Improved Log defaults
 + Javadoc improvements.
 + Map tablib configuration to resource aliases.
 + Prevent reloading dynamic servlets at different paths.
 + Put extra server and servlet info in header.
 + Reduced risk of double null check sync problem.
 + RequestDispatcher.forward() only resets buffer, not headers.
 + RequestDispatcher new queries params replace old.
 + Resource gets systemresources from it's own classloader.
 + Servlet init order may be negative.
 + Session cookies are given context path
 + Sessions try version 1 cookies in set-cookie2 header.
 + Simple stats in ContextLoader.
 + Version details in header can be suppressed with System property
   java.com.mortbay.HTTP.Version.paranoid
 + Warn for missing WEB-INF or web.xml
 + Webapps serve dynamics servlets by default.

jetty-3.0.0.rc5 - 12 November 2000
 + Added debug form to Admin servlet.
 + Allow null cookie values
 + Avoid jprobe race warnings in DateCache
 + Default writer encoding set by mime type if not explicitly set.
 + Implemented servlet load ordering.
 + Many javadoc cleanups.
 + Merged DynamicHandler into ServletHandler.
 + Moved JSP classpath hack to ServletHolder
 + Pass flush through ServletOut
 + Relax webapp rules, accept no web.xml or no WEB-INF
 + Removed Makefile build system.
 + RequestDispatcher can dispatch static resources.
 + Servlet exceptions cause 503 unavailable rather than 500 server error

jetty-2.4.9 - 12 November 2000
 + HtmlFilter handles non default encodings
 + HttpListener default max idle time = 20s
 + HttpListener ignore InterruptedIOExceptions
 + HttpRequest.write uses ISO8859_1 encoding.
 + Writing HttpRequests encodes path

jetty-3.0.0.rc4 - 06 November 2000
 + Fixed mime type mapping bug introduced in RC3
 + Fixed mis-synchronization in ThreadPool.stop()
 + Ignore more IOExceptions (still visible with debug).
 + Provide default JettyIndex.properties

jetty-3.0.0.rc3 - 05 November 2000
 + Added bin/jetty.sh run script.
 + Added context class path dynamic servlet demo
 + Added gz tgz tar.gz .z mime mappings.
 + Added HandlerContext.setHttpServerAccess for trusted contexts.
 + Changed ThreadPool.stop for IBM 1.3 JVM
 + Fixed default mimemap initialization bug
 + Further clean up of the connection close actions
 + Handle mime suffixes containing dots.
 + Implemented mime mapping in webapplications.
 + Moved unused classes from com.mortbay.Util to com.mortbay.Tools in new
   distribution package.
 + Optimized persistent connections by recycling objects
 + Prevent servlet setAttribute calls to protected context attributes.
 + Removed redundant context attributes.
 + Set MaxReadTimeMs in all examples
 + Set the thread context class loader in HandlerContext.handle
 + Strip ./ from relative resources.
 + upgraded build.xml to ant v1.2

jetty-3.0.0.rc2 - 29 October 2000
 + Accept HTTP/1. as HTTP/1.0 (for netscape bug).
 + Accept public DTD for XmlConfiguration (old style still supported).
 + Cleaned up non persistent connection close.
 + ErlEncoding treats params without values as empty rather than null.
 + Fixed thread name problem in ThreadPool
 + Pass file based classpath to JspServlet (see README).
 + Prevented multiple init of ServletHolder
 + Replaced ISO-8859-1 literals with StringUtil static

jetty-3.0.0.rc1 - 22 October 2000
 + Added CGI to demo
 + Added HashUserRealm and cleaned up security constraints
 + Added Multipart request and response classes from Jetty2
 + Added simple admin servlet.
 + All attributes in javax. java. and com.mortbay. name spaces to be set.
 + Cleaned up exception handling.
 + Initialize JSP with classloader.
 + Moved and simplified ServletLoader to ContextLoader.
 + Partial handling of 0.9 requests.
 + removed Thread.destroy() calls.

jetty-2.4.8 - 23 October 2000
 + Fixed bug with 304 replies with bodies.
 + Fixed closing socket problem
 + Improved win32 make files.

jetty-3.0.B05 - 18 October 2000
 + Added default webapp servlet mapping /servlet/name/*
 + Cleaned up response committing and flushing
 + Fixed JarFileResource to handle jar files without directories.
 + Handler RFC2109 cookies (like any browser handles them!)
 + Implemented security-role-ref for servlets
 + Implemented war file support
 + improved ant documentation.
 + Improved default log format for clarity.
 + Improved null returns to get almost clean watchdog test.
 + Improved path spec interpretation by looking at 2.3 spec
 + Java2 style classloading
 + Made test harnesses work with ant.
 + Protected servletConfig from downcast security problems
 + Removed most deprecation warnings
 + Separated context attributes and initParams.

jetty-3.0.B04 - 12 October 2000
 + Added modified version of JasperB3.2 for JSP
 + Added webdefault.xml for web applications.
 + Do not try multiple servlets for a request.
 + Filthy hack to teach jasper JspServer Jetty classpath
 + Fixed problem with session ID in paths
 + Implemented Context.getContext(uri)
 + Merged and renamed third party jars.
 + Moved FileBase to docroot
 + Redirect to index files, so index.jsp works.
 + Restricted context mapping to simple model for servlets.

jetty-3.0.B03 - 09 October 2000
 + Added append mode in RolloverFileLogSink
 + Added release script
 + Catch stop and destroy exceptions in HttpServer.stop()
 + Expanded import package.*; lines
 + Expanded leading tabs to spaces
 + Handle ignorable spaces in WebApplication
 + Handle ignorable spaces in XmlConfiguration
 + Implemented request dispatching.
 + Improved Context to Handler contract.
 + Improved handler toString
 + Improved Log rollover.
 + Made LogSink a Lifecycle interface
 + Parse but not handler startup ordering in web applications.
 + Pass object to LogSink
 + Redirect context only paths.
 + Redo dynamic servlets handling
 + Remove 411 checks as IE breaks this rule after redirect.
 + Removed last remnants JDK 1.1 support
 + Send request log via a LogSink
 + Simplified path translation and real path calculation.
 + Warn about explicit sets of WebApplication

jetty-2.4.7 - 06 October 2000
 + Added encode methods to URI
 + Allow Objects to be passed to LogSink
 + fixes to SSL doco
 + Improved win32 build
 + Set content length on errors for keep alive.
 + Support key and keystore passwords
 + Various improvements to  ServletDispatch, PropertyTree and associated
   classes.

jetty-3.0.B02 - 24 August 2000
 + Added CGI servlet
 + Fixed bug in TestRFC2616
 + Fixed HTTP/1.0 input close bug
 + Fixed LineInput bug with SSL giving CR pause LF.
 + Improved ThreadedServer stop and destroy
 + Use resources in WebApplication

jetty-3.0.B01 - 21 August 2000
 + Implemented more webapp configuration
 + Partial implementation of webapp securitycontraints
 + SSL implemented with JsseListener
 + Switched to the aelfred XML parser from microstar, which is only partially
   validating, but small and lightweight

jetty-2.4.6 - 16 August 2000
 + Added passive mode methods to FTP
 + com.mortbay.Util.KeyPairTool added to handle openSSL SSL keys.
 + JsseListener & SunJsseListener added and documented
 + Minor changes to compile with jikes.
 + Turn Linger off before closing sockets, to allow restart.

jetty-3.0.A99 - 10 August 2000
 + Added Resource abstraction
 + Added Xmlconfiguration utility
 + Implemented jetty.xml configuration
 + Make it compile cleanly with jikes.
 + Re-added commented out imports for JDK-1.1 compile
 + Removed FileBase. Now use ResourceBase instead
 + Replaced FileHandler with ResourceHandler
 + ServletLoader simplied and uses ResourcePath
 + Use SAX XML parsing instead of DOM for space saving.

jetty-3.0.A98 - 20 July 2000
 + Allow HttpRequest.toString() handles bad requests.
 + Fixed constructor to RolloverFileLogSink
 + Implemented Jetty demos and Site as Web Application.
 + Implemented WebApplicationContext
 + Improved synchronization on LogSink
 + ServletRequest.getServerPort() returns 80 rather than 0
 + Switched to JDK1.2 only

jetty-3.0.A97 - 13 July 2000
 + Added error handling to LifeCycleThread
 + Added WML mappings
 + Better tuned SocketListener parameters
 + Fixed makefiles for BSD ls
 + Fixed persistent commits with no content (eg redirect+keep-alive).
 + Formatted version in server info string.
 + implemented removeAttribute on requests
 + Implemented servlet getLocale(s).
 + Implemented servlet isSecure().
 + Less verbose debug
 + Protect setContentLength from a late set in default servlet HEAD handling.
 + Started RequestDispatcher implementation.
 + Tempory request log implementation

jetty-2.4.5 - 09 July 2000
 + Added HtmlExpireFilter and removed response cache revention from HtmlFilter.
 + Don't mark a session invalid until after values unbound.
 + Fixed transaction handling in JDBC wrappers
 + Formatted version in server info.

jetty-3.0.A96 - 27 June 2000
 + Fixed bug with HTTP/1.1 Head reqests to servlets.
 + Supressed un-needed chunking EOF indicators.

jetty-3.0.A95 - 24 June 2000
 + Fixed getServletPath for default "/"
 + Handle spaces in file names in FileHandler.

jetty-3.0.A94 - 19 June 2000
 + Added HandlerContext to allow grouping of handlers into units with the same
   file, resource and class configurations.
 + Cleaned up commit() and added complete() to HttpResponse
 + Implemented Sessions.
 + PathMap exact matches can terminate with ; or # for URL sessions and
   targets.
 + Updated license to clarify that commercial usage IS OK!

jetty-3.0.A93 - 14 June 2000
 + Lots of changes and probably unstable
 + Major rethink! Moved to 2.2 servlet API

jetty-3.0.A92 - 07 June 2000
 + Added HTML classes to jar
 + Fixed redirection bug in FileHandler

jetty-2.4.4 - 03 June 2000
 + Added build-win32.mak
 + Added HTML.Composite.replace
 + Added RolloverFileLogSink
 + Added uk.org.gosnell.Servlets.CgiServlet to contrib
 + BasicAuthHandler uses getResourcePath so it can be used behind request
   dispatching
 + FileHandler implements IfModifiedSince on index files.
 + HttpRequest.setRequestPath does not null pathInfo.
 + Improved LogSink configuration
 + Many debug call optimizations
 + Support System.property expansions in PropertyTrees.

jetty-3.0.A91 - 03 June 2000
 + Abstracted ServletHandler
 + Added HTML classes from Jetty2
 + Implemented realPath and getResource methods for servlets.
 + Improved LogSink mechanism
 + Simplified class loading
 + Simplified HttpServer configuration methods and arguments

jetty-3.0.A9 - 07 May 2000
 + File handler checks modified headers on directory indexes.
 + Fixed double chunking bug in SocketListener.
 + Improvided finally handling of output end game.
 + ServletLoader tries unix then platform separator for zip separator.

jetty-3.0.A8 - 04 May 2000
 + addCookie takes an int maxAge rather than a expires date.
 + Added LogSink extensible log architecture.
 + Added Tenlet class for reverse telnet.
 + Code.ignore only outputs when debug is verbose.
 + Moved Sevlet2_1 handler to com.mortbay.Servlet2_1
 + Servlet2_1 class loading re-acrchitected. See README.

jetty-2.4.3 - 04 May 2000
 + Allow CRLF in UrlEncoded
 + Pass Cookies with 0 max age to browser.

jetty-2.4.2 - 23 April 2000
 + Added GNUJSP to JettyServer.prp file.
 + Added LogSink and FileLogSink classes to allow extensible Log handling.
 + Handle nested RequestDispatcher includes.
 + Modified GNUJSP to prevent close in nested requests.

jetty-3.0.A7 - 15 April 2000
 + Added InetGateway to help debug IE5 problems
 + added removeValue method to MultiMap
 + fixed flush problem with chunked output for IE5
 + Include java 1.2 source hierarchy
 + removed excess ';' from source

jetty-2.4.1 - 09 April 2000
 + Fixed bug in HtmlFilter for tags split between writes.
 + Removed debug println from ServletHolder.
 + Set encoding before exception in FileHandler.

jetty-3.0.A6 - 09 April 2000
 + added bin/useJava2Collections to convert to JDK1.2
 + Dates forced to use US locale
 + Improved portability of Frame and Debug.
 + Integrated skeleton 2.1 Servlet container
 + Removed Converter utilities and InetGateway.

jetty-2.4.0 - 24 March 2000
 + Absolute URIs are returned by getRequestURI (if sent by browser).
 + Added doc directory with a small start
 + Added per servlet resourceBase configuration.
 + Added VirtualHostHandler for virtual host handling
 + Fixed bug with RequestDispatcher.include()
 + Fixed caste problem in UrlEncoded
 + Fixed null pointer in ThreadedServer with stopAll
 + Form parameters only decoded for POSTs
 + Implemented full handling of cookie max age.
 + Improved parsing of stack trace in debug mode.
 + Moved SetUID native code to contrib hierarchy
 + RequestDispatcher handles URI parameters
 + Upgraded to gnujsp 1.0.0

jetty-2.3.5 - 25 January 2000
 + Added configuration option to turn off Keep-Alive in HTTP/1.0
 + Added contrib/com/kiwiconsulting/jetty JSSE SSL adaptor to release.
 + Allow configured servlets to be auto reloaded.
 + Allow properties to be configured for dynamic servlets.
 + Fixed expires bug in Cookies
 + Fixed nasty bug with HTTP/1.1 redirects.
 + Force locale of date formats to US.
 + ProxyHandler sends content for POSTs etc.

jetty-2.3.4 - 18 January 2000
 + Cookie map keyed on domain as well as name and path.
 + DictionaryConverter handles null values.
 + Fixed IllegalStateException handling in DefaultExceptionHandler
 + Fixed interaction with resourcePaths and proxy demo.
 + Improved HtmlFilter.activate header modifications.
 + include from linux rather than genunix for native builds
 + MethodTag.invoke() is now public.
 + Servlet properties allow objects to be stored.
 + URI decodes applies URL decoding to the path.

jetty-3.0.A5 - 19 October 1999
 + Do our own URL string encoding with 8859-1
 + Replaced LF wait in LineInput with state boolean.
 + Use char array in UrlEncoded.decode
 + Use ISO8859_1 instead of UTF8 for headers etc.

jetty-2.3.3 - 19 October 1999
 + Do our own URL encoding with ISO-8859-1
 + HTTP.HTML.EmbedUrl uses contents encoding.
 + Replaced UTF8 encoding with ISO-8859-1 for headers.
 + Use UrlEncoded for form parameters.

jetty-2.3.2 - 17 October 1999
 + Fixed getReader bug with HttpRequest.
 + Updated UrlEncoded with Jetty3 version.

jetty-3.0.A4 - 16 October 1999
 + Added LF wait after CR to LineInput.
 + Basic Authentication Handler.
 + Request attributes
 + UTF8 in UrlDecoded.decodeString.

jetty-2.3.1 - 14 October 1999
 + Added assert with no message to Code
 + Added Oracle DB adapter
 + Changed demo servlets to use writers in preference to outputstreams
 + Fixed GNUJSP 1.0 resource bug.
 + Force UTF8 for FTP commands
 + Force UTF8 for HTML
 + HTTP/1.0 Keep-Alive (about time!).
 + NullHandler/Server default name.name.PROPERTIES to load
   prefix/name.name.properties
 + Prevented thread churn on idle server.
 + ThreadedServer calls setSoTimeout(_maxThreadIdleMs) on accepted sockets.
   Idle reads will timeout.
 + Use UTF8 in HTTP headers

jetty-3.0.A3 - 14 October 1999
 + Added LifeCycle interface to Utils implemented by ThreadPool,
   ThreadedServer, HttpListener & HttpHandler
 + Added service method to HttpConnection for specialization.
 + MaxReadTimeMs added to ThreadedServer.
 + StartAll, stopAll and destroyAll methods added to HttpServer.

jetty-3.0.A2 - 13 October 1999
 + Added cookie support and demo.
 + Cleaned up Util TestHarness.
 + Fixed LineInput problem with repeated CRs
 + HEAD handling.
 + HTTP/1.0 Keep-alive (about time!)
 + NotFound Handler
 + OPTION * Handling.
 + Prevent entity content for responses 100-199,203,304
 + Reduced flushing on writing response.
 + TRACE handling.
 + UTF8 handling on raw output stream.
 + Virtual Hosts.

jetty-3.0.A1 - 12 October 1999
 + Added HttpHandler interface with start/stop/destroy lifecycle
 + Added MultiMap for common handling of multiple valued parameters.
 + Added parameters to HttpRequest
 + Added PathMap implementing mapping as defined in the 2.2 API specification
   (ie. /exact, /prefix/*, *.extention & default ).
 + Implemented simple extension architecture in HttpServer.
 + LineInput uses own buffering and uses character encodings.
 + Quick port of FileHandler
 + Setup demo pages.
 + Updated HttpListener is start/stop/destroy lifecycle.

jetty-3.0.A0 - 09 October 1999
 + Added generalized HTTP Connection.
 + Added support for servlet 2.2 outbut buffer control.
 + Added support for transfer and content encoding filters.
 + Cleaned up chunking code to use LineInput and reduce buffering.
 + Cleanup and abstraction of ThreadPool.
 + Cleanup of HttpRequest and decoupled from Servlet API
 + Cleanup of HttpResponse and decoupled from Servlet API
 + Cleanup of LineInput, using 1.2 Collections.
 + Cleanup of URI, using 1.2 Collections.
 + Cleanup of UrlEncoded, using 1.2 Collections.
 + Created RFC2616 test harness.
 + Extended URI to handle absolute URLs
 + Generalized notification of outputStream events.
 + gzip and deflate request transfer encodings
 + HttpExceptions now produce error pages with specific detail of the
   exception.
 + HttpMessage supports chunked trailers.
 + HttpMessage supports message states.
 + Moved com.mortbay.Base classes to com.mortbay.Util
 + Moved HttpInput/OutputStream to ChunkableInput/OutputStream.
 + Split HttpHeader into HttpFields and HttpMessage.
 + Started fresh repository in CVS
 + TE field coding and trailer handler
 + ThreadedServer based on ThreadPool.

jetty-2.3.0 - 05 October 1999
 + Added SetUID class with native Unix call to set the effective User ID.
 + FTP closes files after put/get.
 + FTP uses InetAddress of command socket for data socket.

jetty-2.3.0A - 22 September 1999
 + Added "Powered by Jetty" button.
 + Added BuildJetty.java file.
 + Added GNUJSP 1.0 for the JSP 1.0 API.
 + Expanded tabs to spaces in source.
 + Made session IDs less predictable and removed race.
 + ServerContext available to HtmlFilters via context param
 + Use javax.servlet classes from JWSDK1.0

jetty-2.2.8 - 15 September 1999
 + Added disableLog() to turn off logging.
 + Allow default table attributes to be overriden.
 + Fixed bug in Element.attribute with empty string values.
 + Improved quoting in HTML element values
 + Made translation of getRequestURI() optional.
 + Removed recursion from TranslationHandler

jetty-2.2.7 - 09 September 1999
 + Added default row, head and cell elements to Table.
 + Added GzipFilter for content encoding.
 + FileHandler passes POST request through if the file does not exist.
 + Reverted semantics of getRequestURI() to return untranslated URI.

jetty-2.2.6 - 05 September 1999
 + Added destroy() method on all HttpHandlers.
 + Added ServletRunnerHandler to the contrib directories.
 + Allow the handling of getPathTranslated to be configured in ServletHandler.
 + class StyleLink added.
 + Cookies always available from getCookies.
 + Cookies parameter renamed to CookiesAsParameters
 + cssClass, cssID and style methods added to element.
 + FileHandler does not server files ending in '/'
 + Fixed Cookie max age order of magnitude bug.
 + HttpRequest.getSession() always returns a session as per the latest API
   spec.
 + Ignore duplicate single valued headers, rather than reply with bad request,
   as IE4 breaks the rules.
 + media added to Style
 + New implementation of ThreadPool, avoids a thread leak problem.
 + Removed JRUN options from ServletHandler configuration.
 + ServletHandler.destroy destroys all servlets.
 + SPAN added to Block
 + Updated HTML package to better support CSS:

jetty-2.2.5 - 19 August 1999
 + Always close connection after a bad request.
 + Better default handling of ServletExceptions
 + Close loaded class files so Win32 can overwrite them before GC (what a silly
   file system!).
 + Don't override the cookie as parameter option.
 + Fixed bug with closing connections in ThreadedServer
 + Improved error messages from Jetty.Server.
 + Limited growth in MultiPartResponse boundary.
 + Made start and stop non final in ThreadedServer
 + Set Expires header in HtmlFilter.

jetty-2.2.4 - 02 August 1999
 + Better help on Jetty.Server
 + Fixed bugs in HtmlFilter parser and added TestHarness.
 + HtmlFilter blanks IfModifiedSince headers on construction
 + HttpRequests may be passed to HttpFilter constructors.
 + Improved cfg RCS script.
 + ThreadedServer can use subclasses of Thread.

jetty-2.2.3 - 27 July 1999
 + Added stop call to HttpServer, used by Exit Servlet.
 + FileHandler defaults to allowing directory access.
 + Fixed parser bug in HtmlFilter
 + Improved performance of com.mortbay.HTML.Heading
 + JDBC tests modified to use cloudscape as DB.
 + Made setInitialize public in ServletHolder
 + Simplified JDBC connection handling so that it works with Java1.2 - albeit
   less efficiently.

jetty-2.2.2 - 22 July 1999
 + File handler passes through not allowed options for non existant files.
 + Fixed bug in com.mortbay.Util.IO with thread routines.
 + Fixed bug in HtmlFilter that prevented single char buffers from being
   written.
 + Fixed bug with CLASSPATH in FileJarServletLoader after attempt to load from
   a jar.
 + Implemented getResourceAsStream in FileJarServletLoader
 + Improved com.mortbay.Base.Log handling of different JVMs
 + Minor fixes to README
 + Moved more test harnesses out of classes.
 + NotFoundHandler can repond with SC_METHOD_NOT_ALLOWED.

jetty-2.2.1 - 18 July 1999
 + Added optional resourceBase property to HttpConfiguration. This is used as a
   URL prefix in the getResource API and was suggested by the JSERV and Tomcat
   implementors.
 + Added TerseExceptionHandler
 + Comma separate header fields.
 + Decoupled ExceptionHandler configuration from Handler stacks. Old config
   style will produce warning and Default behavior. See new config file format
   for changes.
 + Handle continuation lines in HttpHeader.
 + HtmlFilter resets last-modified and content-length headers.
 + Ignore IOException in ThreadedServer.run() when closing.
 + Implemented com.mortbay.Util.IO as a ThreadPool
 + Less verbose debug in PropertyTree
 + Limit maximum line length in HttpInputStream.
 + Protect against duplicate single valued headers.
 + Response with SC_BAD_REQUEST rather than close in more circumstances

jetty-2.2.0 - 01 July 1999
 + Added Protekt SSL HttpListener
 + Exit servlet improved (a little).
 + Fixed some of the javadoc formatting.
 + Improved feature description page.
 + Moved GNUJSP and Protekt listener to a contrib hierarchy.
 + ThreadedServer.stop() closes socket before interrupting threads.

jetty-2.2.Beta4 - 29 June 1999
 + Added comments to configuration files.
 + Added getGlobalProperty to Jetty.Server and used this to configure default
   page type.
 + Added JettyMinimalDemo.prp as an example of an abbreviated configuration.
 + Added property handling to ServletHandler to read JRUN servlet configuration
   files.
 + Altered meaning of * in PropertyTree to assist in abbreviated configuration
   files.
 + Expanded Mime.prp file
 + FileHandler flushes files from cache in DELETE method.
 + Made ServerSocket and accept call generic in ThreadedServer for SSL
   listeners.
 + Options "allowDir" added to FileHandler.
 + Restructured com.mortbay.Jetty.Server for better clarity and documentation.
 + ThreadedServer.stop() now waits until all threads are stopped.
 + Updated README.txt

jetty-2.2.Beta3 - 22 June 1999
 + Added alternate constructors to HTML.Include for InputStream.
 + Added file cache to FileHandler
 + Applied contributed patch of spelling and typo corrections
 + Fixed bug in HttpResponse flush.
 + Fixed file and socket leaks in Include and Embed tags.
 + Implemented efficient version of ServletContext.getResourceAsStream() that
   does not open a new socket connection (as does getResource()).
 + Improved Block.write.
 + LookAndFeelServlet uses getResourceAsStream to get the file to wrap. This
   allows it to benefit from any caching done and to wrap arbitrary content
   (not just files).
 + Ran dos2unix on all text files
 + Re-implemented ThreadedServer to improve and balance performance.
 + Restructure demo so that LookAndFeel content comes from simple handler
   stack.
 + Server.shutdown() clears configuration so that server may be restarted in
   same virtual machine.

jetty-2.2.Beta2 - 12 June 1999
 + Added all write methods to HttpOutputStream$SwitchOutputStream
 + Added com.mortbay.Jetty.Server.shutdown() for gentler shutdown of server.
   Called from Exit servlet
 + Handle  path info of a dynamic loaded servlets and correctly set the servlet
   path.
 + HttpRequest.getParameterNames() no longer alters the order returned by
   getQueryString().
 + Standardized date format in persistent cookies.

jetty-2.2.Beta1 - 07 June 1999
 + Allow configuration of MinListenerThreads, MaxListenerThreads,
   MaxListenerThreadIdleMs
 + Close files after use to avoid "file leak" under heavy load.
 + Defined abstract ServletLoader, derivations of which can be specified in
   HttpConfiguration properties.
 + Destroy requests and responses to help garbage collector.
 + Don't warn about IOExceptions unless Debug is on.
 + Fixed cache in FileJarServletLoader
 + Fixed incorrect version numbers in a few places.
 + Fixed missing copyright messages from some contributions
 + HtmlFilter optimized for being called by a buffered writer.
 + Implemented all HttpServer attribute methods by mapping to the
   HttpConfiguration properties.  Dynamic reconfiguration is NOT supported by
   these methods (but we are thinking about it).
 + Improved ThreadPool synchronization and added minThreads.
 + Included GNUJSP 0.9.9
 + Limit the job queue only grow to the max number of threads.
 + Optional use of DateCache in log file format
 + Restructure ThreadedServer to reduce object creation.

jetty-2.2.Beta0 - 31 May 1999
 + Added "Initialize" attribute to servlet configuration to allow servlet to be
   initialized when loaded.
 + Added HttpResponse.requestHandled() method to avoid bug with servlet doHead
   method.
 + Added Page.rewind() method to allow a page to be written multiple times
 + Handle malformed % characters in URLs.
 + HttpRequest.getCookies returns empty array rather than null for no cookies.
 + Included and improved version of ThreadPool for significant performance
   improvement under high load.
 + Included contributed com.mortbay.Jetty.StressTester class
 + LogHandler changed to support only a single outfile and optional append.
 + Removed support for STF
 + Servlet loader handles jar files with different files separator.
 + ThreadedServer gently shuts down.
 + Token effort to keep test files out of the jar

jetty-2.2.Alpha1 - 07 May 1999
 + Call destroy on old servlets when reloading.
 + Dynamic servlets can have autoReload configured
 + Fixed bug in SessionDump
 + Made capitalization of config file more consistent(ish)
 + ServletHolder can auto reload servlets
 + Wait for requests to complete before reloading.

jetty-2.2.Alpha0 - 06 May 1999
 + Added reload method to ServletHolder, but no way to call it yet.
 + Added ServletLoader implementation if ClassLoader.
 + Changed options for FileServer
 + Dynamic loading of servlets.
 + Fixed date overflow in Cookies
 + HttpHandlers given setProperties method to configure via Properties.
 + HttpListener class can be configured
 + HttpResponse.sendError avoids IllegalStateException
 + Implemented ServletServer
 + Improved PropertyTree implementation
 + Improved SessionDump servlet
 + Mime suffix mapping can be configured.
 + New Server class using PropertyTree for configuration
 + Old Jetty.Server class renamed to Jetty.Server21
 + Removed historic API from sessions
 + Removed SimpleServletServer

jetty-2.1.7 - 22 April 1999
 + Fixed showstopper bug with getReader and getWriter in requests and
   responses.
 + HttpFilter uses package interface to get HttpOutputStream

jetty-2.1.6 - 21 April 1999
 + Added additional date formats for HttpHeader.getDateHeader
 + New simpler version of PropertyTree
 + Reduced initial size of most hashtables to reduce default memory overheads.
 + Return EOF from HttpInputStream that has a content length.
 + Throw IllegalStateException as required from gets of
   input/output/reader/writer in requests/responses.
 + Updated PropertyTreeEditor

jetty-2.1.5 - 15 April 1999
 + Added setType methods to com.mortbay.FTP.Ftp
 + Fixed alignment bug in TableForm
 + Fixed bug in ServletDispatch for null pathInfo
 + Fixed bugs with invalid sessions
 + Form parameters protected against multiple decodes when redirected.
 + HtmlFilter now expands <!=SESSION> to the URL encoded session if required.
 + Implemented HttpRequest.getReader()
 + Instrumented most of the demo to support URL session encoding.
 + Moved SessionHandler to front of stacks
 + Page factory requires response for session encoding
 + Reduced session memory overhead of sessions
 + Removed RFCs from package
 + Servlet log has been diverted to com.mortbay.Base.Log.event() Thus debug
   does not need to be turned on to see servlet logs.
 + Session URL encoding fixed for relative URLs.

jetty-2.1.4 - 26 March 1999
 + fixed bug in getRealPath
 + Fixed problem compiling PathMap under some JDKs.
 + getPathTranslated now call getRealPath with pathInfo (as per spec).
 + HttpRequest attributes implemented.
 + pathInfo returns null for zero length pathInfo (as per spec). Sorry if this
   breaks your servlets - it is a pain!
 + Reduced HTML dependence in HTTP package to allow minimal configuration
 + Session max idle time implemented.
 + Tightened license agreement so that binary distributions are required to
   include the license file.

jetty-2.1.3 - 19 March 1999
 + Added support for suffixes to PathMap
 + Included GNUJSP implementation of Java Server Pages
 + Use Java2 javadoc

jetty-2.1.2 - 09 March 1999
 + API documentation for JSDK 2.1.1
 + Cascading style sheet HTML element added.
 + Converted most servlets to HttpServlets using do Methods.
 + Fixed trailing / bug in FileHandler (again!).
 + JSDK 2.1.1

jetty-2.1.1 - 05 March 1999
 + com.mortbay.Base.DateCache class added and used to speed date handling.
 + Fast char buffer handling in HttpInputStream
 + Faster version of HttpHeader.read()
 + Faster version of HttpInputStream.readLine().
 + Faster version of HttpRequest
 + Handle '.' in configured paths (temp fix until PropertyTrees)
 + Reduced number of calls to getRemoteHost for optimization
 + Size all StringBuffers

jetty-2.1.0 - 22 February 1999
 + Deprecated com.mortbay.Util.STF
 + getServlet methods return null.
 + image/jpg -> image/jpeg
 + PropertyTrees (see new Demo page)
 + ServletDispatch (see new Demo page)
 + Session URL Encoding

jetty-2.1.B1 - 13 February 1999
 + Added video/quicktime to default MIME types.
 + Fixed bug with if-modified-since in FileHandler
 + Fixed bug with MultipartRequest.
 + Implemented getResource and getResourceAsStream (NOT Tested!).
 + Implemented Handler translations and getRealPath.
 + Implemented RequestDispatcher (NOT Tested!).
 + Improved handling of File.separator in FileHandler.
 + Replace package com.mortbay.Util.Gateway with class
   com.mortbay.Util.InetGateway
 + Updated DefaultExceptionHandler.
 + Updated InetAddrPort.
 + Updated URI.

jetty-2.1.B0 - 30 January 1999
 + Added plug gateway classes com.mortbay.Util.Gateway
 + Added support for PUT, MOVE, DELETE in FileHandler
 + FileHandler now sets content length.
 + Fixed command line bug with SimpleServletConfig
 + Minor changes to support MS J++ and its non standard language extensions -
   MMMmmm should have left it unchanged!
 + Uses JSDK2.1 API, but not all methods implemented.

jetty-2.0.5 - 15 December 1998
 + added getHeaderNoParams
 + Temp fix to getCharacterEncoding

jetty-2.0.4 - 10 December 1998
 + Implement getCharacterEncoding
 + Improved default Makefile behaviour
 + Improved error code returns
 + Portability issues solved for Apple's
 + Removed MORTBAY_HOME support from Makefiles
 + Use real release of JSDK2.0 (rather than beta).

jetty-2.0.3 - 13 November 1998
 + Fix bug with index files for Jetty.Server. Previously servers configured
   with com.mortbay.Jetty.Server would not handle index.html files.  Need to
   make this configurable in the prp file.
 + Fixed errors in README file: com.mortbay.Jetty.Server was called
   com.mortbay.HTTP.Server
 + Limit threads in ThreadedServer and low priority listener option greatly
   improve performance under worse case loads.

jetty-2.0.2 - 01 November 1998
 + Add thread pool to threaded server for significant performance improvement.
 + Buffer files during configuration
 + Buffer HTTP Response headers.
 + Use JETTY_HOME rather than MORTBAY_HOME for build environment

jetty-2.0.1 - 27 October 1998
 + Released under an Open Source license.

jetty-2.0.0 - 25 October 1998
 + Added multipart/form-data demo.
 + Fixed Code.formatObject handling of null objects.
 + Removed Chat demo (too many netscape dependencies).
 + Removed exceptional case from FileHandler redirect.

jetty-2.0.Beta3 - 29 September 1998
 + Added com.mortbay.HTTP.MultiPartRequest to handle file uploads
 + Added com.mortbay.Jetty.Server (see README.Jetty)
 + Demo converted to an instance of com.mortbay.Jetty.Server
 + Fixed Log Handler again.
 + Ignore exception from HttpListener
 + Properly implemented multiple listening addresses
 + Send 301 for directories without trailing / in FileHandler

jetty-2.0Beta2 - 01 July 1998
 + Fixed Log Handler for HTTP/1.1
 + Slight improvement in READMEEs

jetty-2.0Beta1 - 01 June 1998
 + Fixed bug with calls to service during initialization of servlet
 + Handle full URLs in HTTP requests (to some extent)
 + Improved performance of Code.debug() calls, significantly in the case of non
   matching debug patterns.
 + Improved performance with special asciiToLowerCase
 + Provided addSection on com.mortbay.HTML.Page
 + Provided reset on com.mortbay.HTML.Composite.
 + Proxy demo in different server instance
 + Warn if MSIE used for multi part MIME.

jetty-2.0Alpha2 - 01 May 1998
 + Added date format to Log
 + Added timezone to Log
 + Handle params in getIntHeader and getDateHeader
 + Handle Single Threaded servlets with servlet pool
 + JDK1.2 javax.servlet API
 + Removed HttpRequest.getByteContent
 + Use javax.servlet.http.Cookie
 + Use javax.servlet.http.HttpSession
 + Use javax.servlet.http.HttpUtils.parsePostData

jetty-1.3.5 - 01 May 1998
 + Added date format to Log
 + Correct handling of multiple parameters
 + Debug triggers added to com.mortbay.Base.Code
 + Fixed socket inet bug in FTP

jetty-2.0Alpha1 - 08 April 1998
 + accept chunked data
 + Add HTTP/1.1 Date: header
 + Correct formatting of Date HTTP headers
 + Debug triggers added to com.mortbay.Base.Code
 + Fixed forward bug with no port number
 + handle extra spaces in HTTP headers
 + Handle file requests with If-Modified-Since: or If-Unmodified-Since:
 + Handle HEAD properly
 + Handle HTTP/1.1 Host: header
 + HttpTests test harness
 + persistent connections
 + Really fixed handling of multiple parameters
 + Removed HttpRequestHeader class
 + Requires Host: header for 1.1 requests
 + Send 100 Continue for HTTP/1.1 requests (concerned about push???)
 + Send Connection: close
 + Sends chunked data for 1.1 responses of unknown length.

jetty-1.3.4 - 15 March 1998
 + Dump servlet enhanced to exercise these changes.
 + Fixed handling of multiple parameters in query and form content.
   "?A=1%2C2&A=C%2CD" now returns two values ("1,2" & "C,D") rather than 4.
 + ServletHandler now takes an optional file base directory name which is used
   to set the translated path for pathInfo in servlet requests.

jetty-1.3.3
 + Closed exception window in HttpListener.java
 + Fixed TableForm.addButtonArea bug.
 + TableForm.extendRow() uses existing cell

jetty-1.3.2
 + Added per Table cell composite factories
 + Fixed proxy bug with no port number

jetty-1.3.1
 + Better handling of InvocationTargetException in debug
 + ForwardHandler only forwards as http/1.0 (from Tobias.Miller)
 + Improved parsing of stack traces
 + Minor fixes in SmtpMail
 + Minor release adjustments for Tracker

jetty-1.3.0
 + Added DbAdaptor to JDBC wrappers
 + Beta release of Tracker

jetty-1.2.0
 + Alternate look and feel for Jetty
 + Better Debug configuration
 + DebugServlet
 + Fixed install bug for nested classes
 + Reintroduced STF

jetty-1.1.1
 + Improved documentation

jetty-1.1
 + Improved connection caching in java.mortbay.JDBC
 + Moved HttpCode to com.mortbay.Util

jetty-1.0.1
 + Bug fixes

jetty-1.0
 + First release in com.mortbay package structure
 + Included Util, JDBC, HTML, HTTP, Jetty

