Releases: ktorio/ktor
Releases · ktorio/ktor
1.6.4 Release
1.6.4
Published 30 September 2021
- [Auth] [Interceptors] Phase Phase('Challenge') was not registered for this pipeline (KTOR-3156)
- insertPhaseBefore and insertPhaseAfter lead to different order (KTOR-438)
- Ktor 1.6.3 crashes on restart due to java.lang.ClassNotFoundException: Didn't find class "java.nio.file.WatchService" on Android 24 (KTOR-3166)
- GraalVM binary using CIO fails on start "Module function cannot be found" (KTOR-2987)
- Logging in Shutdown thread looks not informative (KTOR-3175)
- Installed Closeable features not closed when closing HttpClient (KTOR-3116)
- Explain method(HttpMethod.Options) in docs for CORS (KTOR-2913)
- ContentType.parse("text/html qqq") must fail with error (KTOR-3080)
- Update JSON topics using code snippets from the 'codeSnippets' project (KTOR-2955)
- Could not find artifact org.jetbrains.kotlinx:kotlinx-html-jvm:pom:0.7.2 (KTOR-2481)
- Update the 'Modules' topic (KTOR-1861)
- Native engines tests are not run outside of the
ktor-client-tests
module (KTOR-3069) - MultiPartData.readAllParts throws IOException when the epilogue is omitted (KTOR-3173)
- Update Kotlin and Coroutines Versions (KTOR-3103)
1.6.3
- Auth Feature: token refresh works only on main thread in Kotlin/Native (KTOR-3055)
- FUS report mixes up feature id and feature version (KTOR-3067)
- SessionTrackerById - doesn't remove invalid session id (KTOR-2584)
- Bearer Token is Not Initialized after Clean (KTOR-3008)
- ktor does not support semicolon query parameter in Netty Engine (KTOR-2991)
- HOCON config not resolved in ServletApplicationEngine (KTOR-3020)
- Deploy WAR on Tomcat (KTOR-2867)
- The wizard missing the Pebble plugin (KTOR-2922)
- Wizard: Creating a project without sample code creates
Application.configureRouting
withoutrouting
(KTOR-2581) - The 'Create Run Configuration automatically' option name is cropped (KTOR-2898)
- InvalidMutabilityException when using withContext and SavedHttpCall (KTOR-2033)
- Reuse Package Search to add dependencies for Ktor Features in Plugin (KTOR-2433)
- Server: TLSConfigBuilder.addKeyStore: store.getCertificateChain could return null(KTOR-3047)
1.6.2
- Fixed Ktor plugin raises StackOverflowError when opening some files (KTOR-2950)
- Added parseUrlEncodedParameters Documentation (KTOR-2843)
- Fixed CIO WebSockets client incorrectly sends Sec-WebSocket-Extensions header even if empty regression (KTOR-2388)
- Updated serialization version to 1.2.2 (KTOR-2968)
- Made code example complete in OAuth documentation(KTOR-1415)
- Added quick action on a Application.module(...) to generate tests for a given module with all the endpoints in plugin (KTOR-2411)
- Fixed kotlin.native.concurrent.InvalidMutabilityException: mutation attempt of frozen @72c18 (KTOR-2883)
- Fixed 404 errors in ktor docs (KTOR-2915)
- Added prometeus version to Ktor docs (KTOR-2015)
- Fixed incorrect Structured Markup (LD+JSON) on Ktor docs (KTOR-2943)
- Fixed confusing/incorrect JWT auth documentation (KTOR-979)
- Fixed embedded Netty Server with watch paths is crashing in API level 22 when calling stopping server (KTOR-1613)
- Fixed NoSuchMethodError: No virtual method getParameterCount on Android API 25 and lower regression (KTOR-2924)
- Fixed X-Forwarded-Port Parse Exception when it contains comma separated list of ports regression (KTOR-2918)
- Made CookieConfiguration default to secure configuration and require user opt-out long-standing (KTOR-628)
- Updated docs section about testing with cookies (KTOR-273)
- Fixed "ApplicationEngineEnvironment was not started" when accessing application before server is started (KTOR-1854)
- Updated HTTP/2 documentation (KTOR-267)
- Fixed NPE in ApacheRequestProducer when "http://" is requested (KTOR-1405)
- Updated vulnerable versions from sonatype report (KTOR-2875)
- Fixed ByteReadChannel.readUTF8Line() indefinitely returns empty lines when
\r
is not followed by\n
(KTOR-2868)
1.6.1
- Linked back to site from Docs (KTOR-2843)
- Fixed unbound public symbol for public io.ktor.network.sockets/SocketTimeoutException when iosArm64 framework (KTOR-2276)
- Fixed configureBootstrap hook overwritten by Ktor settings (KTOR-356)
- Fixed crypto is undefined in IE11 (KTOR-409)
- Added support for X-Forwarded-Port header in XForwardedHeaderSupport plugin (KTOR-2788)
- Fixed StatusPages doesn't catch FreeMarker exceptions (KTOR-343)
- Fixed java.nio.charset.IllegalCharsetNameException: %s (KTOR-2645)
- Added application startup and hot-reloading time log (KTOR-2816)
- Fixed postpone (and don't cache) name resolution in cio client (KTOR-2513)
- Improved diagnostics for exceptions inherited from IOException (KTOR-2691)
- Fixed refresh token gets stuck (KTOR-2797)
- Fixed developmentMode is on by default in tests (KTOR-2727)
- Fixed unable to run new Ktor project (KTOR-2586)
- Fixed unhandled get freezes with
CIO
server (KTOR-333) - Fixed double host header (KTOR-379)
- Fixed use kotlin.reflect.jvm.javaType instead of the type token pattern in io.ktor.util.reflect.typeInfo (KTOR-2709)
- Fixed "JWK Public Key of type ""EC""" (KTOR-2387)
- Fixed lots of Run Configurations Created for Ktor Project with the Similar Names (KTOR-2803)
- Fixed ApplicationEngineEnvironmentBuilder.module { … } is executed twice on Exception (KTOR-2734)
- Researched shared indexes for Ktor (KTOR-2774)
- Fixed selecting custom package name in Ktor wizard still results in example.com import in ApplicationTest.kt (KTOR-2707)
- Fixed generated project with specific security and session features selected fails to compile / run (KTOR-2636)
- Fixed Wizard: Misleading comment in Static Feature (KTOR-2560)
- Fixed "Update ktor 1.5.0 docs. Deprecated ""challenge"" function for form auth in docs." (KTOR-1974)
- Fixed Auth Feature Code Snippet: form authentication the doesn't work (KTOR-821)
- Fixed the '-ea' flag works differently when running a server using Application.module and embeddedServer (KTOR-1758)
- Fixed enabled-by-default development mode breaks reflection by overriding classloader (KTOR-2306)
- Reviewed documentation for the onUpload/onDownload client callbacks (KTOR-2710)
- Fixed Ktor fails to deliver response with error: failed with exception: kotlinx.coroutines.JobCancellationException: Parent job is Completed; (KTOR-2711)
- Replaced kotlin-test dependency with junit in ktor-server-test-host (KTOR-2555)
1.6.0
- Ktor fails to deliver response with error: failed with exception: kotlinx.coroutines.JobCancellationException: Parent job is Completed; (KTOR-2711)
- Wrong Tabs Name in Code Blocks (KTOR-2726)
- Apache HTTP Client does not send Content-Length header if body is empty content (KTOR-556)
- Review Auth providers (KTOR-2637)
- When the main thread executes runBlocking, using the iOS engine will cause a deadlock (KTOR-2683)
- Deprecate TestApplicationCall.requestHandled (KTOR-2712)
- Update Dokka: Dokka tasks fails with old dokka version and Gradle 7 (KTOR-2693)
- Duplicate server
Features
Section on the Documentation Website (KTOR-2702) - Duplicate entry "Features" in Server docs (KTOR-1546)
- Upgrading from 1.4.3 to 1.5.2 introduced a routing precedence (KTOR-2278)
- Sporadic OkHttp errors after upgrading to ktor 1.3.1 (KTOR-449)
- Netty: server freezes after start error (KTOR-803)
- aSocket().bind() sometimes throws Already bound SocketException (KTOR-638)
- UDPSocketTest.testBroadcastSuccessful[jvm] is failing (KTOR-2616)
- Fix flaky CIOHttpsTest.customDomainsTest[jvm] (KTOR-2065)
- Occasionally empty response using Netty + Jackson (KTOR-1973)
- '%3D' inside query of redirect target location will be replaced to '=' (KTOR-2057)
- CIO: TLSConfigBuilder JVM allow null as password (KTOR-940)
- route("{...}") stopped matching root (KTOR-1965)
- call.respond() will not check or apply ContentNegotiation for some types (KTOR-2194)
- Add support for Velocity Tools (KTOR-2345)
- Base name of micrometer metrics is not configurable (KTOR-2210)
- Support for Compression Extensions for WebSocket (RFC 7692) (KTOR-688)
- Document usage of Bearer token in Http Client (KTOR-2439)
- How to track leaked buffers in ktor-io? (KTOR-2442)
- Routing: Add PutTyped and PatchTyped Overload (KTOR-1344)
- Migrate to Dokka 1.4.0 (KTOR-1032)
- Client upload/download progress observer/handler/interceptor (KTOR-400)
- HTTP-client auth with Bearer token (KTOR-331)
- Expose TrailingSlashRouteSelector (KTOR-2511)
- Add an option to disable URL Encoding (KTOR-553)
1.5.4
- Fixed extra trailing slashes in Route.toString (KTOR-2427)
- Fixed ByteReadChannel.read related issues (KTOR-2615,
KTOR-2519) - Fixed silently ignored exceptions in HTML DSL with StatusPages feature (KTOR-756)
- Changed IosHttpRequestException supertype to IOException (KTOR-2566)
- Fixed utility collection implementation for K/N (KTOR-2482)
- Fixed client Digest auth realm handling (KTOR-1464)
1.5.3 Release
Published 2 Apr 2021
- Upgraded to coroutines 1.4.3 (KTOR-2254)
- Upgraded kotlinx.serialization to 1.1.0 (KTOR-2238)
- Fixed I/O readRemaining sometimes looses exception (KTOR-2263)
- Fixed autoreload with 1.5.x when using embeddedServer NOT in debug mode regression (KTOR-2214)
- Fixed flaky CIOSustainabilityTest.testBlockingConcurrency[jvm] (KTOR-2265)
- Resolve 'node-fetch' on libs produced by jsBrowserProductionLibraryDistribution regression (KTOR-2230)
- Updated doc string for FormPart (KTOR-2173)
- Fixed java.lang.IllegalStateException: No instance for key AttributeKey: ExpectSuccessAttribyteKey regression (KTOR-2389)
- Supported overriding Kotlin module configuration using jackson dsl function (KTOR-1692)
- Fixed CORS can't pass on some none standard orgin on jvm (KTOR-469)
- Fixed unexpected exception when using Session feature: "Using blocking primitives on this dispatcher is not allowed" regression jvm (KTOR-1452)
- Fixed NettyApplicationEngine providing a configureBootstrap in the configuration throws IllegalStateException: group set already (KTOR-2078)
- Fixed wrong indentation in
Serving Static Content
guide (KTOR-2017) - Fixed InsufficientSpaceException trying to build ByteReadPacket jvm (KTOR-960)
- Fixed flaky ProxyTest.testHttpProxy[CIO][jvm] (KTOR-2082)
- Fixed invalid assertion for existence of the key in the key store (KTOR-2311)
- Fixed incorrect grammar in exception messages (KTOR-2284)
- Fixed flaky JavaEngineTests.testThreadLeak[jvm] (KTOR-2098)
- Fixed flaky JettyStressTest.highLoadStressTest (KTOR-2080)
- Fixed flaky ExceptionsJvmTest.testConnectionClosedDuringRequest[jvm] (KTOR-2063)
1.5.2 Release
1.5.2
Published 25 Feb 2021
- Fixed Dokka building for master (KTOR-2206)
- Fixed native build on linux machine (KTOR-2200)
- Fixed docker doc is incorrect / does not work (KTOR-2179)
- Fixed crash with Firebase Performance in iOS (KTOR-642)
- Fixed Ktor Client CIO engine Jvm ignores Cipher suites with key strength more than 128 bits. (KTOR-1914)
- Fixed mandatory Path Segment parameter can be empty, if no explicit route with trailing / is defined (KTOR-2054)
- Fixed flaky ClientSocketTest.testSelfConnect[jvm] (KTOR-2060)
- Switch JS Fetch API to Standard Library (org.w3c.fetch.*) (KTOR-1460)
- Fixed CIO server always start on "0.0.0.0" - does not respect "connector" configuration (KTOR-334)
- Fixed server/netty: IllegalReferenceCountException (KTOR-1801)
- Fixed digest authentication: cannot successfully pass authentication using curl or web browser (KTOR-1466)
- Fixed HTTP Client exception is masked by JobCancellationException with Ktor 1.5.0 (KTOR-1967)
- Fixed changing
requestTimeoutMillis
in config of HttpTimeout feature doesn't change the CIO's timeout (KTOR-2000) - Fixed test a POST with MultiPart using TestApplicationEngine does not success or fail (KTOR-345)
- Fixed default Headers feature adds duplicated Server header (KTOR-1976)
- Fixed custom response validation is not running when default is disabled (KTOR-2007)
- Fixed session cookie with very long max age duration (KTOR-692)
1.5.1
Published 27 Jan 2021
- Circular reference for SocketException and StackOverflowError when using SLF4J logger (KTOR-1080)
- start.ktor.io - Incorrect import for websockets for ktor 1.2.4 (KTOR-274)
- Unable to catch socket exceptions (KTOR-1166)
- Support explicit WebSocket session close (KTOR-340)
- ktor-client-apache: thread stuck in ByteBufferChannel.readRemainingSuspend (KTOR-1463)
- Logging tests fails due to floating log entries (KTOR-1870)
- Adding existing dropwizard metrics registry to Ktor (KTOR-1798)
- Exception kotlinx.serialization.SerializationException: Class 'ArrayList' is not registered for polymorphic serialization in the scope of 'Collection' in 1.5.0 (KTOR-1795)
- Prevent double quotes on header params (KTOR-1797)
- Post request shows empty body after upgrading v1.3.2 (KTOR-426)
- CIO native selector doesn't select new descriptors (KTOR-1856)
- Client logging docs don't mention all required dependencies (KTOR-280)
- Out of date self-signed-certificate documentation (KTOR-272)
- ClosedReceiveChannelException when making request with CIO engine using a proxy to https (KTOR-1458)
- Incorrect encoding function used for URL path by URLBuilder (KTOR-1543)
- A single slash gets ignored for defining a route, but 1.5 requires them due to KTOR-372 (KTOR-1615)
- Wrong shadow plugin version in Fat JAR docs (KTOR-1359)
- ktor server documentation is returning 404 (KTOR-1602)
- CORS doesn't reject bad headers (KTOR-1662)
- OkHTTP client engine tries to close the connection twice during the closing handshake (KTOR-1374)
- Dispatcher is closing earlier than client (KTOR-1661)
- Server losing channel exceptions at receive (KTOR-1590)
- Request parameters should have name (KTOR-378)
- Status-code must be 3-digit (KTOR-370)
- Connect request sends wrong status line (KTOR-1612)
- Response channel is always cancelled with Logging feature (KTOR-1598)
- Java client logging tests are fluky (KTOR-1599)
- HttpTimeoutTest.testConnect are flaky (KTOR-1583)
- Jetty: requests to resources, that doesn't respond with HTTP/2, lead to unexpected behaviour (KTOR-874)
- "Unfinished workers detected" using client on native (KTOR-1220)
- HttpTimeout.testSocketTimeoutWriteFail is flaky (KTOR-1584)
- Reserved characters in path is not encoded (KTOR-570)
- testTimeoutCancelsWhenParentScopeCancels is flaky (KTOR-1585)
- Java client freeze (KTOR-1567)
- CallLoggingTest is flaky (KTOR-1582)
- Missing dependency information the Authentication and Authorization topic (KTOR-1575)
- "Using a Self-Signed Certificate" docs provide wrong dependency for 1.3.x (KTOR-21)
- "Testing Http Client" docs page contains artifact name with -native suffix (KTOR-1006)
- Custom JSON mapping with Jackson (KTOR-603)
- Serialization for client section does not explain how to use it (KTOR-999)
- Add information about required artifacts to the WebSockets topic (KTOR-1532)
- Missing dependency information the Client Auth topic (KTOR-1533)
- New documentation lacks artifacts information for Gradle and Maven (KTOR-1167)
- ResponseException is no longer serializable starting from 1.4.0 (breaking change) (KTOR-1552)
- Upgrade kotlin to 1.4.21 (KTOR-1637)
1.5.0
Published 22 Dec 2020
- Fixed crash when sending large responses in 1.4.2 (KTOR-1369)
- Introduced URLBuilder function to append paths (KTOR-403)
- Allowed
OkHttpConfig
to configureWebSocket.Factory
(KTOR-951) - Get client certificate information from request (KTOR-424)
- Fixed quoting
Content-Disposition
additional parameters (KTOR-455) - Support Java HTTP Client (KTOR-348)
- Serializing collections of different element types (KTOR-1163)
- Introduced Netty
tcpKeepAlive
option (KTOR-368) - Implemented development mode for Ktor (KTOR-1184)
- Implemented proper unhandled exception handling strategy (KTOR-835)
- Added OAuth feature config to avoid Dropbox issue (KTOR-715)
- Fixed trailing slashes handling in routing (KTOR-372)
- Added CIO client proxy tunneling support (KTOR-1458)
- Supported Sealed Classes inside Session-Objects (KTOR-826)
- Fixed code autoreload (KTOR-664)
- Added response text to the message of
ResponseException
and derived
exceptions (KTOR-844) - Added ability to send cookies with
HttpRequestBuilder
(KTOR-926) - Added warning to HTTP/2 push API (KTOR-1329)
- Fixed parsing Authorization header diagnostics (KTOR-1406)
- Fixed CORS character encoding issue (KTOR-1370)
- Added CORS
anyHeader
in feature configuration (KTOR-977,
KTOR-1263) - Added curl engine option sslVerify (KTOR-1093)
- Fixed client response validation in some cases (KTOR-1412)
- Introduced support for pre-compresed files (KTOR-1447)
- Fixed Apache client engine sometimes hits an unrecoverable socket timeout when using
ChannelWriterContent (KTOR-1149) - Fixed typo
val socketTimeout
inCIOEngineConfig
cause it's a property in the
config (KTOR-1240) - Added excludeSuffix to HttpsRedirect feature (KTOR-1197)
- Fixed CIO client connectRetryAttempts = 0 handling (KTOR-1125)
- Added option to use specific alias from keystore in CIO TLSConfigBuilder JVM
(KTOR-941)
1.4.3
Published 1 Dec 2020
- Client: URL encode / escaping is wrong (KTOR-341)
- HTTP/2 push fails with netty engine (KTOR-800)
- Request headers exceeding expected threshold are not handled correctly (KTOR-905)
- iOS client fails with CoroutinesInternalError when Logging is used (KTOR-924)
- Experimental API and compatibility guarantees (KTOR-1035)
- CIO: client engine exceptions are both logged and thrown (KTOR-1127)
- Timeout feature: android engine throws Java's SocketTimeoutException instead of ConnectTimeoutException (KTOR-1229)
- Input.readTextExactBytes(n) on empty input different behavior per platform (KTOR-1235)
- HttpRedirect feature alters Location header value (KTOR-1236)
- Wrong pool is used to release
IOBuffer
afterByteChannelSequential.copyTo
from static initialized instance. (KTOR-1237) - CIO Engine's HttpClient may fail when trying to send large size binary data. (KTOR-1247)
ByteBufferChannel.readRemaining
doesn't read whole channel (KTOR-1268)- Cannot receive content via jackson negotiator since 1.4.2 (KTOR-1286)
- ktor-io: JVM shared function decrease performance starting from 1.4.0 (KTOR-1290)
- Sessions + SSL (Netty) (KTOR-1292)
- Netty HTTP/2 HEAD response hangs (KTOR-1298)
- Using blocking primitives on this dispatcher is not allowed. Consider using async channel instead or use blocking primitives in withContext(Dispatchers.IO) instead. (KTOR-1305)
- "Wrong HEX escape": gracefully handle invalid URLs (KTOR-1308)
- Add build parameter to build ktor with JVM IR compiler (KTOR-1336)
- Update kotlin to 1.4.20 (KTOR-1346)
- Fix configuration if project without VPN and cache (KTOR-1347)
- Client: NPE in FormDataContentKt -> Input.copyTo (KTOR-1349)
- Upgrade Netty to 4.1.54.Final (KTOR-1363)
- Handle failure in reading request body (KTOR-1367)
- Remove copyTo usage from ServerPipeline (KTOR-1381)