jetty-9.2.16.v20160407 - 07 April 2016
 + 316 Add *.chm mimetype mapping
 + 353 Jetty Client doesn't forward authentication headers with redirects when
   using proxy
 + 365 Potential connection leakage in case of aborted request
 + 367 Resolve remaining git.eclipse.org build references
 + 371 update apache jsp to 8.0.27
 + 377 HttpClient - No supported cipher suites leads to stuck requests
 + 418 Add osgi capability for endpoint configurator
 + 424 Jetty impl. of Websocket ServerEndpointConfig.Configurator lifecycle out
   of spec
 + 438 File and Path Resources with control characters should be rejected
 + 469 update to apache jasper 8.0.33
 + 85 Expose TLS protocol used for connection in SecureRequestCustomizer

jetty-9.2.15.v20160210 - 10 February 2016
 + 482042 New API, Allow customization of ServletHandler path mapping
 + 482243 Fixed GzipHandler for Include
 + 482270 Expose upgrade request locales
 + 482855 Content-Length omitted for POST requests with empty body
 + 483620 Servlet annotation mapping to "/" should override webdefault.xml
   mapping
 + 483857 jetty-client onComplete isn't called in case of exception in
   GZIPContentDecoder.
 + 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
 + 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.
 + 487511 Jetty HTTP won't work on turkish systems

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.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.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.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.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.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
 + 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
 + 446563 Null HttpChannel.getCurrentHttpChannel() in
   ServletHandler.doFilter().
 + 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
 + 447381 Disable SSLv3 by default
 + 447472 test harness for slow large writes
 + 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
 + 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.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

