This is an automated email from the ASF dual-hosted git repository. chibenwa pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/james-project.git
commit fa9cc093c7e0ae1a38c70884b073ffeef2b6adea Author: Benoit TELLIER <[email protected]> AuthorDate: Fri Sep 25 09:36:25 2026 +0200 [RELEASE] 3.9.1 changelog --- CHANGELOG.md | 96 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 743a141100..a6865b7458 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -172,6 +172,102 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) No changes yet. +## [3.9.1] - 2026-09-25 + +### Removals + + - Drop Glowroot integration: the Glowroot agent is no longer shipped within James docker images, nor configurable + through the helm chart. See related upgrade instructions. + +### Enhancements + + - Webadmin `password.generate`: generate a random password upon start up when none is configured, and log it. + **Breaking change**: this defaults to `true`, thus webadmin is no longer unauthenticated out of the box, existing + deployments included. Set `password.generate=false` in `webadmin.properties` to opt back into an unauthenticated + webadmin, or configure `password` to pin a stable secret. See related upgrade instructions. + - JAMES-4171 Allow configuring a strong distinction between submission and MX ports (#2941) + - [FIX] Better validate script names in `SieveFileRepository` (#3111) + - [FIX] Include more IP ranges in WebPush target validation (#3112) + - [FIX] Correct `Right.read` check in `StoreMessageIdManager::setInMailboxesReactive` (#2842) + - [ENHANCEMENT] OIDC SASL should validate `aud` upon token verification, without requiring introspection + - [UPGRADE] ActiveMQ + Artemis (fixes numerous CVEs) (#3175) + - [UPGRADE] Netty 4.1.126.Final -> 4.1.135.Final (CVE-2025-67735) + - [UPGRADE] Log4J 2.24.3 -> 2.25.5 + - [UPGRADE] Logback 1.5.18 -> 1.5.38 + - [UPGRADE] Spark java 3.0.2 -> 3.0.5 + - [UPGRADE] BouncyCastle 1.81 -> 1.85 + - [UPGRADE] Jackson 2.19.1 -> 2.22.2 + - [UPGRADE] jsoup 1.20.1 -> 1.23.2 + - [UPGRADE] MIME4J 0.8.13 -> 0.8.15 (#3170) + - [UPGRADE] Postgres JDBC driver 42.7.7 -> 42.7.13 + - [UPGRADE] Cassandra driver 4.19.0 -> 4.19.3 + - [UPGRADE] RabbitMQ amqp-client 5.25.0 -> 5.33.1 + - [UPGRADE] angus-mail 2.0.3 -> 2.0.5 + - [UPGRADE] Micrometer core 1.15.1 -> 1.16.7, tracing 1.5.1 -> 1.6.7 + - [UPGRADE] commons-text 1.13.1 -> 1.15.0, commons-configuration2 2.12.0 -> 2.15.0 + - Exclude unused httpclient5 dependencies from the OpenSearch client + +### New Features + + - JAMES-4148 JMAP filtering rules: `moveTo` action, flag criteria, `ANY` comparator for custom headers, date based + criteria, plus webadmin routes to run a rule on a mailbox or on all users + - JAMES-4157 Implement JMAP `Blob/copy` + - JAMES-3728 Implement `MessageIdManager::updateEmail`, allowing `Email/set` update to combine move and setFlags + - [ENHANCEMENT] Implement negative ACL for JMAP (#3057) + - JAMES-4219 Allow customizing some SMTP replies (#3137) + - JAMES-4160 Add `LegacyReadOnlyUsersLDAPRepository` for Spring users relying on LDAP. See related upgrade instructions. + - RabbitMQ: `notification.queue.autoDelete` allows disabling notification queue auto delete in favor of `x-expires` (#3076) + - `SolveMailboxInconsistencies`: add an `autoMerge` mode (defaults to `false`) + - JAMES-3816 Record concurrent IMAP request count + +### Bug fixes + + - [FIX] `ImapRequestFrameDecoder` drops a pipelined command after a literal + - [FIX] Failing class cast in `IMAPCommandThrottler` + - JAMES-3816 Correct `ReactiveThrottler` cancellation and set an upper bound to its pending tasks + - JAMES-4184 POP3 `TOP msg 0` only reads headers (#2965) + - JAMES-4086 `FoldLongLines`: folded content exceeding line length (#2851) + - [FIX] Prevent potentially blocking calls upon JMAP uploads (#3116) + - JAMES-3872 JMAP `Email/get`: fix attachment read level, and Postgres `FetchGroup` metadata read level (#2869, #2872) + - [FIX] JMAP filtering: `AddressHeader::parseFullAddress` should leniently parse malformed address headers (#2856) + - Limit the subject length for indexation to not go over the Lucene raw indexation max size limit + - [FIX] Handle partial rows in Cassandra `attachmentV2` + - [FIX] `CassandraMailRepository` should be more resilient to extra large mail repositories (#3121) + - [FIX] `ClearMailRepository` should count only once + - JAMES-4212 Use a string based representation for event bus groups, allowing to redeliver dead-lettered events of + extension groups (#3091) + - Deleted message vault: fix dead letter setup, be tolerant to messages without internal dates + - Task manager: + - Task cleanup should purge stalled tasks + - Allow canceling tasks with truncated history + - Handle missing task history in the Cassandra implementation like Postgres does + - Cassandra event store: include the snapshot in the event batch, read snapshots with a single row + - Tolerate failures for task additional information + - Explicit logs upon task publication failures, distributed task manager logs + - Mailbox and user rename: + - [FIX] `StoreMailboxManager::renameSubMailboxes` should change namespace + - [FIX] Cassandra folder rename: upfront read of the mailbox and its children, `SERIAL` reads for the initial + picture, decisions based on a truth table + - [FIX] User rename was returning wrong quota when target address is not empty + - [FIX] User rename: simplify the rename dance when destination exists, per rename temporary mailbox layout, + handle submailbox edge cases + - JAMES-3885 Forbid using the same user as source and target of user rename (#2847) + - Cassandra inconsistencies solving: + - `SolveMailboxInconsistencies`: several runs until convergence, address all possible failures, fix duplicated + `mailboxPathV3` registrations and recover from failed `mailboxPathV3` deletion upon rename, leverage strong + consistency (#3100) + - Account for consistency choices within `RecomputeMailboxCountersService` and `SolveMessageInconsistenciesService` + - JAMES-2314 Log unexpected webadmin errors (#2849) + +### Documentation + + - Webadmin: ease 15-minute demo and custom route demo setups, authenticate Postgres provisioning scripts + +### Build + + - Publish examples again + - Fix tmpfs permission mode for Cassandra, Postgres and RabbitMQ test containers, fix docker client API issue + ## [3.9.0] - 2025-10-03 ### Important changes --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
