Jetty Changelog

What's new in Jetty 9.4.0

Dec 13, 2016
  • How config async support in jsp tag?
  • Allow configuration of WebSocket mappings from Spring
  • Support configuration of properties during --add-to-start
  • jetty.server.HttpInput deadlock
  • Support HTTP/2 HEADERS trailer
  • NPE in ClasspathPattern.match()
  • Make SessionData easier to subclass
  • AbstractSessionIdManager can't atomically check for uniqueness of new session ID

New in Jetty 9.3.6 (Nov 21, 2015)

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

New in Jetty 9.3.2 (Aug 17, 2015)

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

New in Jetty 9.3.1 (Jul 17, 2015)

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

New in Jetty 9.3.0 (Jun 16, 2015)

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

New in Jetty 9.2.11 (May 30, 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

New in Jetty 9.2.10 (Mar 16, 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.

New in Jetty 9.2.9 (Feb 27, 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

New in Jetty 9.2.8 (Feb 20, 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.

New in Jetty 9.2.7 (Jan 21, 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

New in Jetty 9.2.6 (Dec 11, 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
  • 452261 Ensure works with new JettyJspServlet
  • 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.

New in Jetty 9.2.2 (Jul 25, 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.

New in Jetty 9.2.1 (Jun 11, 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

New in Jetty 9.2.0 (May 28, 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

New in Jetty 9.2.0 RC 0 (May 19, 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
  • 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

New in Jetty 9.1.5 (May 6, 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.

New in Jetty 9.1.4 (Apr 7, 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

New in Jetty 9.1.3 (Mar 6, 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

New in Jetty 9.1.2 (Feb 15, 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.

New in Jetty 9.1.1 (Jan 11, 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 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 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 "
  • 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.

New in Jetty 9.1.0 (Nov 19, 2013)

  • Fixes:
  • 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

New in Jetty 9.0.7 (Nov 15, 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

New in Jetty 9.1.0 RC 1 (Nov 8, 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

New in Jetty 9.1.0 RC 0 (Oct 4, 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 true
  • 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

New in Jetty 9.0.5 (Aug 17, 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.

New in Jetty 9.0.4 (Jul 2, 2013)

  • CGI support parameters
  • Make JDBCLoginService data members protected to facilitate subclassing
  • MongoSessionManager refresh updates last access time
  • Servlet 3.Non Blocking IO
  • WebSocket - squelch legitimate Exceptions during testing to avoid false positives
  • javadoc JMX annotations
  • enable overlay deployer
  • HTTP 1.with GET returns internal IP address.
  • Websocket client SSL hostname verification is broken, always defaults to raw IP as String
  • supressed stacktrace in ReferrerPushStrategyTest
  • Accept CRLF or LF but not CR as line termination
  • Test harness checked results in callbacks ignored.
  • Test Failure: org.eclipse.jetty.servlets.EventSourceServletTest.testEncoding
  • Test Failure: org.eclipse.jetty.client.HttpClientStreamTest.testInputStreamResponseListenerFailedBeforeResponse[0].
  • ReloadedSessionMissingClassTest uses class compiled with jdkCookies not copied in ServletWebSocketRequest
  • Method parameters for @OnWebSocketError should support Throwable
  • Javadoc for @OnWebSocketFrame incorrectly references WebSocketFrame object
  • Better handle empty Accept-Language
  • added excludedMimeTypes to gzipFilter
  • jetty-maven-plugin can not handle whitespaces in equivalent of WEB-INF/classes paths
  • Add toggle for failing on servlet availability
  • JDBCSessionIdManager potentially leaves server in bad state after startup
  • HashSessionManager leaves file handles open after being stopped
  • isAsyncStarted is false on redispatch
  • NullPointerException when parsing request cookies
  • JDBCSessionManager don't mark session as dirty if same attribute value set
  • Inconsistent start/stop handling in ContainerLifeCycle
  • Multipart parsing issue with boundry and charset in ContentType header
  • Etags set inresponse
  • set correct jetty.url in all pom files
  • setContentType from addHeader
  • In pax-web servlet services requests even if init() has not finished running
  • refactor test-webapp's chat application. Now there's only a single request for user login and initial chat message.
  • NPE in AsyncContext.getRequest()
  • Jetty Maven plugin reload ignores web.xml listeners
  • JSTL jars not scanned by jetty-ant
  • Problem with ShutdownMonitor for jetty-ant
  • Transparent Proxy - rewrite URL is ignoring query strings.
  • getParameter returns null on Multipart request if called before request.getPart()/getParts()
  • Enhance CommandlineBuilder to not escape strings inside single quotes
  • GzipFilter setting of headers when reset and/or not compressed
  • META-INF/jetty-webapp-context.xml file should be able to refer to bundle-relative locations
  • Need to be able to configure the ThreadPool for the default jetty server in osgi
  • XML Args ignored without DTD
  • added reference to example rewrite rules
  • Empty causes StackOverflowError
  • Set jetty.home property so config files work even if deployed inside a bundle
  • fix IllegalStateException when SPDY is used and the response is written through BufferUtil.writeTo byte by byte
  • NPE on context restart using dynamic servlet registration
  • jetty.xml threadpool arg injection
  • Ensure servlets, filters and listeners added via dynamic registration, annotations or descriptors are cleaned on context restarts
  • Change HttpChannel contract
  • Resource files not closed
  • spdy: Fix NPE when a broken client tried to create duplicate stream IDs
  • Ids and properties not set for execution of jetty xml config files with mvn plugin
  • 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.
  • Jetty should allow webdefault to be specified using a relative location when running in OSGi
  • Suspended request completed by a request thread does not set read interest.
  • return buffer.slice() instead of buffer.asReadOnlyBuffer() in ResourceCache to avoid using inefficent path in BufferUtil.writeTo
  • Websocket shouldn't create HttpSession if not present
  • Jetty clients submits incomplete URL to proxy.
  • 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
  • WebSocketSession#isSecure() doesn't return true for SSL session on the server side
  • HttpClient with proxy does not tunnel HTTPS requests.
  • throw EofException instead of EOFException in HttpOutput.write() if HttpOutpyt is closed
  • suppress stacktraces that happen during test setup shutdown after successful test run
  • WebSocketCreator.createWebSocket() should use servlet specific parameters
  • Make SSL client certificate information available to server websockets
  • WebSocket Session.getUpgradeRequest().getRequestURI() returns bad URI on server side
  • Avoid NPE for requestDispatcher(../)
  • UpgradeRequest is sent twice when using SSL, one fails warning about WritePendingException
  • jetty start broken for command line options
  • Exceptions during @OnWebSocketConnect not reported to @OnWebSocketError
  • Removed FillInterest race
  • MongoSessionManager conflicting session update op
  • ServletContextHandler.setHandler does not relink handlers - check for null
  • NoSQLSessions: implement session context data persistence across server restarts
  • errors while creating push streams in HttpTransportOverSPDY are now logged to debug instead of warn
  • async support defaults to false for spec created servlets and filters
  • Continuation isExpired handling.
  • Avoid reverse DNS lookups when creating SSLEngines.
  • 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
  • HttpClient may send proxied https requests to the proxy instead of the target server.
  • add comment why executeOnFillable defaults to true
  • SslConnection.DecryptedEndpoint.fill() sometimes misses a few network bytes

New in Jetty 9.0.3 (May 9, 2013)

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

New in Jetty 9.0.2 (Apr 19, 2013)

  • FIN WAIT sockets
  • reuse Deflaters in GzipFilter
  • do not use the ConcurrentArrayBlockingQueue for thread pool, selector and async request log
  • fixed poor methods in ArrayTernaryTrie
  • Tidy up comments and code formatting for osgi
  • Servlet init-param always overridden by WebServlet annotation
  • spdy imeplement MAX_CONCURRENT_STREAMS
  • spdy improve handling of duplicate stream Ids
  • ServletContextListeners call in reverse in doStop
  • InputStreamResponseListener.await returns null when request fails.
  • example other server for documentation

New in Jetty 9.0.1 (Apr 19, 2013)

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

New in Jetty 9.0.0 (Apr 19, 2013)

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

New in Jetty 7.0.1 (Dec 22, 2009)

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