This is an automated email from the ASF dual-hosted git repository.

lhotari pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/pulsar-site.git

commit d4f73de0089b365ba967c65d7d6ce645f0b3269e
Author: Lari Hotari <[email protected]>
AuthorDate: Thu Feb 19 21:58:35 2026 +0200

    Create release notes for 4.0.9 and 4.1.3
---
 data/release-java.js                         |  18 ++-
 data/release-pulsar.js                       |  22 +++-
 release-notes/versioned/client-java-4.0.9.md |  26 +++++
 release-notes/versioned/client-java-4.1.3.md |  26 +++++
 release-notes/versioned/pulsar-4.0.9.md      | 159 +++++++++++++++++++++++++++
 release-notes/versioned/pulsar-4.1.3.md      | 150 +++++++++++++++++++++++++
 releases.json                                |   2 +
 7 files changed, 399 insertions(+), 4 deletions(-)

diff --git a/data/release-java.js b/data/release-java.js
index 9a1bd228cdd..ffe1d4d325e 100644
--- a/data/release-java.js
+++ b/data/release-java.js
@@ -1,10 +1,17 @@
 module.exports = [
+  {
+    "tagName": "v4.1.3",
+    "vtag": "4.1.x",
+    "releaseNotes": "/release-notes/versioned/client-java-4.1.3/",
+    "doc": "/docs/4.1.x/client-libraries-java",
+    "version": "v4.1.x"
+  },
   {
     "tagName": "v4.1.2",
     "vtag": "4.1.x",
     "releaseNotes": "/release-notes/versioned/client-java-4.1.2/",
     "doc": "/docs/4.1.x/client-libraries-java",
-    "version": "v4.1.x"
+    "version": ""
   },
   {
     "tagName": "v4.1.1",
@@ -20,12 +27,19 @@ module.exports = [
     "doc": "/docs/4.1.x/client-libraries-java",
     "version": ""
   },
+  {
+    "tagName": "v4.0.9",
+    "vtag": "4.0.x",
+    "releaseNotes": "/release-notes/versioned/client-java-4.0.9/",
+    "doc": "/docs/4.0.x/client-libraries-java",
+    "version": "v4.0.x"
+  },
   {
     "tagName": "v4.0.8",
     "vtag": "4.0.x",
     "releaseNotes": "/release-notes/versioned/client-java-4.0.8/",
     "doc": "/docs/4.0.x/client-libraries-java",
-    "version": "v4.0.x"
+    "version": ""
   },
   {
     "tagName": "v4.0.7",
diff --git a/data/release-pulsar.js b/data/release-pulsar.js
index 861d2619505..0bb4da779c2 100644
--- a/data/release-pulsar.js
+++ b/data/release-pulsar.js
@@ -1,4 +1,13 @@
 module.exports = [
+  {
+    "author": "lhotari",
+    "tagName": "v4.1.3",
+    "publishedAt": "2026-02-19T19:48:49Z",
+    "vtag": "4.1.x",
+    "releaseNotes": "/release-notes/versioned/pulsar-4.1.3/",
+    "doc": "/docs/4.1.x",
+    "version": "v4.1.x"
+  },
   {
     "author": "lhotari",
     "tagName": "v4.1.2",
@@ -6,7 +15,7 @@ module.exports = [
     "vtag": "4.1.x",
     "releaseNotes": "/release-notes/versioned/pulsar-4.1.2/",
     "doc": "/docs/4.1.x",
-    "version": "v4.1.x"
+    "version": ""
   },
   {
     "author": "lhotari",
@@ -26,6 +35,15 @@ module.exports = [
     "doc": "/docs/4.1.x",
     "version": ""
   },
+  {
+    "author": "lhotari",
+    "tagName": "v4.0.9",
+    "publishedAt": "2026-02-19T19:48:13Z",
+    "vtag": "4.0.x",
+    "releaseNotes": "/release-notes/versioned/pulsar-4.0.9/",
+    "doc": "/docs/4.0.x",
+    "version": "v4.0.x"
+  },
   {
     "author": "lhotari",
     "tagName": "v4.0.8",
@@ -33,7 +51,7 @@ module.exports = [
     "vtag": "4.0.x",
     "releaseNotes": "/release-notes/versioned/pulsar-4.0.8/",
     "doc": "/docs/4.0.x",
-    "version": "v4.0.x"
+    "version": ""
   },
   {
     "author": "lhotari",
diff --git a/release-notes/versioned/client-java-4.0.9.md 
b/release-notes/versioned/client-java-4.0.9.md
new file mode 100644
index 00000000000..76827808a19
--- /dev/null
+++ b/release-notes/versioned/client-java-4.0.9.md
@@ -0,0 +1,26 @@
+---
+id: client-java-4.0.9
+title: Client Java 4.0.9
+sidebar_label: Client Java 4.0.9
+---
+
+- [fix][client] ControlledClusterFailover avoid unnecessary reconnection. 
([#25178](https://github.com/apache/pulsar/pull/25178))
+- [fix][client] Fix AutoProduceBytesSchema.clone() method 
([#25015](https://github.com/apache/pulsar/pull/25015))
+- [fix][client] Fix double recycling of the message in isValidConsumerEpoch 
method ([#25008](https://github.com/apache/pulsar/pull/25008))
+- [fix][client] Fix invalid parameter type passed to Map.get in 
TopicsImpl.getListAsync method 
([#25069](https://github.com/apache/pulsar/pull/25069))
+- [fix][client] Fix producer synchronous retry handling in failPendingMessages 
method ([#25207](https://github.com/apache/pulsar/pull/25207))
+- [fix][client] Fix race condition between isDuplicate() and flushAsync() 
method in PersistentAcknowledgmentsGroupingTracker due to incorrect use Netty 
Recycler ([#25208](https://github.com/apache/pulsar/pull/25208))
+- [fix][client] Fix thread-safety of AutoProduceBytesSchema 
([#25014](https://github.com/apache/pulsar/pull/25014))
+- [fix][client] PIP-84: Skip processing a message in the message listener if 
the consumer epoch is no longer valid 
([#25007](https://github.com/apache/pulsar/pull/25007))
+- [fix][client] Send all chunkMessageIds to broker for redelivery 
([#25229](https://github.com/apache/pulsar/pull/25229))
+- [fix][client] Skip processing messages in the listener when the consumer has 
been closed ([#25006](https://github.com/apache/pulsar/pull/25006))
+- [fix][client]Producer stuck or geo-replication stuck due to wrong value of 
message.numMessagesInBatch 
([#25106](https://github.com/apache/pulsar/pull/25106))
+- [improve][client] Add null checks for MessageAcknowledger methods to prevent 
NullPointerException ([#25036](https://github.com/apache/pulsar/pull/25036))
+- [improve][client] Make authorization server metadata path configurable in 
AuthenticationOAuth2 ([#25052](https://github.com/apache/pulsar/pull/25052))
+- [improve][client] Test no exception could be thrown for invalid epoch in 
message ([#25013](https://github.com/apache/pulsar/pull/25013))
+- [improve][client]Reduce unnecessary getPartitionedTopicMetadata requests 
when using retry and DLQ topics. 
([#25172](https://github.com/apache/pulsar/pull/25172))
+- [feat][client] oauth2 trustcerts file and timeouts 
([#24944](https://github.com/apache/pulsar/pull/24944))
+- [improve] Upgrade Netty to 4.1.131.Final 
([#25232](https://github.com/apache/pulsar/pull/25232))
+- [fix][sec] Eliminate commons-collections dependency 
([#25024](https://github.com/apache/pulsar/pull/25024))
+- [improve] Upgrade Apache Commons library versions 
([#24983](https://github.com/apache/pulsar/pull/24983))
+- [fix] Handle TLS close_notify to avoid SslClosedEngineException: SSLEngine 
closed already ([#24986](https://github.com/apache/pulsar/pull/24986))
diff --git a/release-notes/versioned/client-java-4.1.3.md 
b/release-notes/versioned/client-java-4.1.3.md
new file mode 100644
index 00000000000..a7a4d562483
--- /dev/null
+++ b/release-notes/versioned/client-java-4.1.3.md
@@ -0,0 +1,26 @@
+---
+id: client-java-4.1.3
+title: Client Java 4.1.3
+sidebar_label: Client Java 4.1.3
+---
+
+- [fix][client] ControlledClusterFailover avoid unnecessary reconnection. 
([#25178](https://github.com/apache/pulsar/pull/25178))
+- [fix][client] Fix AutoProduceBytesSchema.clone() method 
([#25015](https://github.com/apache/pulsar/pull/25015))
+- [fix][client] Fix double recycling of the message in isValidConsumerEpoch 
method ([#25008](https://github.com/apache/pulsar/pull/25008))
+- [fix][client] Fix invalid parameter type passed to Map.get in 
TopicsImpl.getListAsync method 
([#25069](https://github.com/apache/pulsar/pull/25069))
+- [fix][client] Fix producer synchronous retry handling in failPendingMessages 
method ([#25207](https://github.com/apache/pulsar/pull/25207))
+- [fix][client] Fix race condition between isDuplicate() and flushAsync() 
method in PersistentAcknowledgmentsGroupingTracker due to incorrect use Netty 
Recycler ([#25208](https://github.com/apache/pulsar/pull/25208))
+- [fix][client] Fix thread-safety of AutoProduceBytesSchema 
([#25014](https://github.com/apache/pulsar/pull/25014))
+- [fix][client] PIP-84: Skip processing a message in the message listener if 
the consumer epoch is no longer valid 
([#25007](https://github.com/apache/pulsar/pull/25007))
+- [fix][client] Send all chunkMessageIds to broker for redelivery 
([#25229](https://github.com/apache/pulsar/pull/25229))
+- [fix][client] Skip processing messages in the listener when the consumer has 
been closed ([#25006](https://github.com/apache/pulsar/pull/25006))
+- [fix][client]Producer stuck or geo-replication stuck due to wrong value of 
message.numMessagesInBatch 
([#25106](https://github.com/apache/pulsar/pull/25106))
+- [improve][client] Add null checks for MessageAcknowledger methods to prevent 
NullPointerException ([#25036](https://github.com/apache/pulsar/pull/25036))
+- [improve][client] Make authorization server metadata path configurable in 
AuthenticationOAuth2 ([#25052](https://github.com/apache/pulsar/pull/25052))
+- [improve][client] Test no exception could be thrown for invalid epoch in 
message ([#25013](https://github.com/apache/pulsar/pull/25013))
+- [improve][client]Reduce unnecessary getPartitionedTopicMetadata requests 
when using retry and DLQ topics. 
([#25172](https://github.com/apache/pulsar/pull/25172))
+- [feat][client] oauth2 trustcerts file and timeouts 
([#24944](https://github.com/apache/pulsar/pull/24944))
+- [improve] Upgrade Netty to 4.1.131.Final 
([#25232](https://github.com/apache/pulsar/pull/25232))
+- [fix][sec] Eliminate commons-collections dependency 
([#25024](https://github.com/apache/pulsar/pull/25024))
+- [improve] Upgrade Apache Commons library versions 
([#24983](https://github.com/apache/pulsar/pull/24983))
+- [fix] Handle TLS close_notify to avoid SslClosedEngineException: SSLEngine 
closed already ([#24986](https://github.com/apache/pulsar/pull/24986))
\ No newline at end of file
diff --git a/release-notes/versioned/pulsar-4.0.9.md 
b/release-notes/versioned/pulsar-4.0.9.md
new file mode 100644
index 00000000000..7675f4a9274
--- /dev/null
+++ b/release-notes/versioned/pulsar-4.0.9.md
@@ -0,0 +1,159 @@
+---
+id: pulsar-4.0.9
+title: Apache Pulsar 4.0.9
+sidebar_label: Apache Pulsar 4.0.9
+---
+
+#### 2026-02-19
+
+### Library updates
+
+- [improve][broker] Upgrade bookkeeper to 4.17.3 
([#25166](https://github.com/apache/pulsar/pull/25166))
+- [fix][sec] Bump at.yawk.lz4:lz4-java from 1.9.0 to 1.10.1 in /pulsar-common 
([#25045](https://github.com/apache/pulsar/pull/25045))
+- [fix][sec] Bump org.apache.solr:solr-core from 9.8.0 to 9.10.1 in 
/pulsar-io/solr ([#25175](https://github.com/apache/pulsar/pull/25175))
+- [fix][sec] Eliminate commons-collections dependency 
([#25024](https://github.com/apache/pulsar/pull/25024))
+- [fix][sec] Exclude org.lz4:lz4-java and standardize on at.yawk.lz4-java to 
remediate CVE-2025-12183 and CVE-2025-66566 
([#25198](https://github.com/apache/pulsar/pull/25198))
+- [fix][sec] Upgrade jose4j to 0.9.6 to address CVE-2024-29371 
([#25095](https://github.com/apache/pulsar/pull/25095))
+- [fix][sec] Upgrade jose4j to 0.9.6 to address CVE-2024-29371 
([#25095](https://github.com/apache/pulsar/pull/25095))
+- [fix][sec] Upgrade log4j to 2.25.3 to address CVE-2025-68161 
([#25102](https://github.com/apache/pulsar/pull/25102))
+- [fix][sec] Upgrade Netty to 4.1.130.Final 
([#25078](https://github.com/apache/pulsar/pull/25078))
+- [fix][sec] Upgrade OpenSearch to 2.19.4 to remediate CVE-2025-9624 
([#25206](https://github.com/apache/pulsar/pull/25206))
+- [fix][sec] Upgrade vertx to address CVE-2026-1002 
([#25152](https://github.com/apache/pulsar/pull/25152))
+- [fix][test] Upgrade docker-java to 3.7.0 
([#25209](https://github.com/apache/pulsar/pull/25209))
+- [improve][monitor] Upgrade OpenTelemetry to 1.56.0, Otel instrumentation to 
2.21.0 and Otel semconv to 1.37.0 
([#24994](https://github.com/apache/pulsar/pull/24994))
+- [improve][monitor] Upgrade OpenTelemetry to 1.56.0, Otel instrumentation to 
2.21.0 and Otel semconv to 1.37.0 
([#24994](https://github.com/apache/pulsar/pull/24994))
+- [improve][misc] Upgrade snappy version to 1.1.10.8 
([#25182](https://github.com/apache/pulsar/pull/25182))
+- [feat][meta] upgrade oxia version to 0.7.2 
([#24976](https://github.com/apache/pulsar/pull/24976))
+- [fix] Upgrade gson to 2.13.2 
([#25022](https://github.com/apache/pulsar/pull/25022))
+- [improve] Upgrade Apache Commons library versions 
([#24983](https://github.com/apache/pulsar/pull/24983))
+- [improve] Upgrade Log4j2 to 2.25.2 and slf4j to 2.0.17 
([#24985](https://github.com/apache/pulsar/pull/24985))
+- [improve] Upgrade Netty to 4.1.131.Final 
([#25232](https://github.com/apache/pulsar/pull/25232))
+- [fix][sec] Bump github.com/dvsekhvalnov/jose2go from 1.6.0 to 1.7.0 in 
/pulsar-function-go ([#24987](https://github.com/apache/pulsar/pull/24987))
+
+### Broker
+
+- [fix][broker] Add schema version in rest produce api 
([#25004](https://github.com/apache/pulsar/pull/25004))
+- [fix][broker] Avoid split non-existent bundle 
([#25031](https://github.com/apache/pulsar/pull/25031))
+- [fix][broker] Fence reset cursor by timestamp to avoid concurrent 
timestamp-based position lookups 
([#25151](https://github.com/apache/pulsar/pull/25151))
+- [fix][broker] Fix chunked message loss when no consumers are available 
([#25077](https://github.com/apache/pulsar/pull/25077))
+- [fix][broker] Fix compaction horizon might be reset to an old position when 
phase two is interrupted ([#25119](https://github.com/apache/pulsar/pull/25119))
+- [fix][broker] Fix creation of replicated subscriptions for partitioned 
topics ([#24997](https://github.com/apache/pulsar/pull/24997))
+- [fix][broker] Fix cursor position persistence in ledger trimming 
([#25087](https://github.com/apache/pulsar/pull/25087))
+- [fix][broker] Fix httpProxyTimeout config 
([#25223](https://github.com/apache/pulsar/pull/25223))
+- [fix][broker] Fix incomplete futures in topic property update/delete methods 
([#25228](https://github.com/apache/pulsar/pull/25228))
+- [fix][broker] Fix issue with schemaValidationEnforced in geo-replication 
([#25012](https://github.com/apache/pulsar/pull/25012))
+- [fix][broker] Fix ManagedCursorImpl.asyncDelete() method may lose previous 
async mark delete properties in race condition 
([#25165](https://github.com/apache/pulsar/pull/25165))
+- [fix][broker] Fix markDeletedPosition race condition in 
ManagedLedgerImpl.maybeUpdateCursorBeforeTrimmingConsumedLedger() method 
([#25110](https://github.com/apache/pulsar/pull/25110))
+- [fix][broker] Fix MultiRolesTokenAuthorizationProvider error when 
subscription prefix doesn't match. 
([#25121](https://github.com/apache/pulsar/pull/25121))
+- [fix][broker] Fix potential NPE in InMemTransactionBuffer.appendBufferToTxn 
by returning a valid Position 
([#25039](https://github.com/apache/pulsar/pull/25039))
+- [fix][broker] fix prepareInitPoliciesCacheAsync in 
SystemTopicBasedTopicPoliciesService 
([#24980](https://github.com/apache/pulsar/pull/24980))
+- [fix][broker] Fix regex matching of namespace name which might contain a 
regex char ([#25136](https://github.com/apache/pulsar/pull/25136))
+- [fix][broker] Fix transactionMetadataFuture completeExceptionally with null 
value ([#25231](https://github.com/apache/pulsar/pull/25231))
+- [fix][broker] Fix various error-prone detected errors mainly in logging and 
String.format parameters ([#25059](https://github.com/apache/pulsar/pull/25059))
+- [fix][broker] Force EnsemblePolicies to resolve network location after 
rackInfoMap is updated due to changes in /ledgers/available znode 
([#25067](https://github.com/apache/pulsar/pull/25067))
+- [fix][broker] PIP-442: Fix race condition in async semaphore permit updates 
that causes memory limits to become ineffective 
([#25066](https://github.com/apache/pulsar/pull/25066))
+- [fix][broker] Prevent missed topic changes in topic watchers and schedule 
periodic refresh with patternAutoDiscoveryPeriod interval 
([#25188](https://github.com/apache/pulsar/pull/25188))
+- [fix][broker]Fix incorrect backlog if use multiple acknowledge types on the 
same subscription ([#25047](https://github.com/apache/pulsar/pull/25047))
+- [fix][broker]Fix ledgerHandle failed to read by using new BK API 
([#25199](https://github.com/apache/pulsar/pull/25199))
+- [fix][broker]Fix memory leak when using a customized ManagedLedger 
implementation ([#25016](https://github.com/apache/pulsar/pull/25016))
+- [fix][broker]Incorrect backlog that is larger than expected 
([#25037](https://github.com/apache/pulsar/pull/25037))
+- [fix][broker]Infinitely failed to delete topic if the first time failed and 
enabled transaction ([#25073](https://github.com/apache/pulsar/pull/25073))
+- [fix][broker]pulsar_ml_reads_inflight_bytes and 
pulsar_ml_reads_available_inflight_bytes are 0 at the same time 
([#25105](https://github.com/apache/pulsar/pull/25105))
+- [fix][broker]Topic deleting failed after removed local cluster from 
namespace policies ([#25114](https://github.com/apache/pulsar/pull/25114))
+- [fix][broker]Wrong backlog: expected 0 but got 1 
([#24938](https://github.com/apache/pulsar/pull/24938))
+- [fix][admin] Fix offload policy incompatible issue. 
([#25149](https://github.com/apache/pulsar/pull/25149))
+- [fix][admin] Refactor bookie affinity group sync operations to async in rest 
api ([#25050](https://github.com/apache/pulsar/pull/25050))
+- [fix][ml] Fix cursor backlog size to account for individual acks 
([#25089](https://github.com/apache/pulsar/pull/25089))
+- [fix][ml] Fix NoSuchElementException in EntryCountEstimator caused by a race 
condition ([#25177](https://github.com/apache/pulsar/pull/25177))
+- [fix][ml] Retry offload reads when OffloadReadHandleClosedException is 
encountered ([#25148](https://github.com/apache/pulsar/pull/25148))
+- [fix][meta] Metadata cache refresh might not take effect 
([#25246](https://github.com/apache/pulsar/pull/25246))
+- [improve][broker] Add idle timeout support for http 
([#25224](https://github.com/apache/pulsar/pull/25224))
+- [improve][broker] Add strictAuthMethod to require explicit authentication 
method ([#25185](https://github.com/apache/pulsar/pull/25185))
+- [improve][broker] Change the log level from error to info when throwing 
NotAllowedException ([#25130](https://github.com/apache/pulsar/pull/25130))
+- [improve][broker] Enhance logging for adding schema failures in ServerCnx 
([#25048](https://github.com/apache/pulsar/pull/25048))
+- [improve][broker] Ensure metadata session state visibility and improve 
Unstable observability for ServiceUnitStateChannelImpl 
([#25132](https://github.com/apache/pulsar/pull/25132))
+- [improve][broker] Fix replicated subscriptions race condition with mark 
delete update and snapshot completion 
([#16651](https://github.com/apache/pulsar/pull/16651))
+- [improve][broker] Fix thread safety issue in 
ManagedCursorImpl.removeProperty  
([#25104](https://github.com/apache/pulsar/pull/25104))
+- [improve][broker] Give the detail error msg when authenticate failed with 
AuthenticationException ([#25221](https://github.com/apache/pulsar/pull/25221))
+- [improve][broker] Improve replicated subscription snapshot cache so that 
subscriptions can be replicated when mark delete position update is not 
frequent ([#25044](https://github.com/apache/pulsar/pull/25044))
+- [improve][broker] Optimize Reader creation in TopicPoliciesService 
([#24658](https://github.com/apache/pulsar/pull/24658))
+- [improve][broker] PIP-442: Add memory limits for topic list watcher (part 2) 
([#25070](https://github.com/apache/pulsar/pull/25070))
+- [improve][broker] Use atomic counter for ongoing transaction count 
([#25053](https://github.com/apache/pulsar/pull/25053))
+- [improve][broker]Add test for getting partitioned topic metadata with 
PulsarAdmin client ([#25026](https://github.com/apache/pulsar/pull/25026))
+- [improve][broker]Improve error response of failed to delete topic if it has 
replicators connected ([#24975](https://github.com/apache/pulsar/pull/24975))
+- [improve][broker]Remove the warn log that frequently prints 
([#25018](https://github.com/apache/pulsar/pull/25018))
+- [improve][admin] Add counter for marker messages in 
PersistentTopics.analyzeSubscriptionBacklog() rest api 
([#25091](https://github.com/apache/pulsar/pull/25091))
+- [improve][meta] PIP-453: Improve the metadata store threading model 
([#25187](https://github.com/apache/pulsar/pull/25187))
+- [fix] Handle TLS close_notify to avoid SslClosedEngineException: SSLEngine 
closed already ([#24986](https://github.com/apache/pulsar/pull/24986))
+- [fix][broker]Avoid read a entry that entry id is -1 when calling 
getLastMessagePublishTime 
([#24579](https://github.com/apache/pulsar/pull/24579))
+- [fix][admin] Fix asyncGetRequest to handle 204 
([#25124](https://github.com/apache/pulsar/pull/25124))
+- [improve][broker] Cache last publish timestamp for idle topics to reduce 
storage reads ([#24825](https://github.com/apache/pulsar/pull/24825))
+- [improve][broker][pip-431] PIP-431: Add Creation and Last Publish Timestamps 
to Topic Stats ([#24471](https://github.com/apache/pulsar/pull/24471))
+- [feat][admin] PIP-415: Support getting message ID by index 
([#24222](https://github.com/apache/pulsar/pull/24222))
+
+### Client
+
+- [fix][client] ControlledClusterFailover avoid unnecessary reconnection. 
([#25178](https://github.com/apache/pulsar/pull/25178))
+- [fix][client] Fix AutoProduceBytesSchema.clone() method 
([#25015](https://github.com/apache/pulsar/pull/25015))
+- [fix][client] Fix double recycling of the message in isValidConsumerEpoch 
method ([#25008](https://github.com/apache/pulsar/pull/25008))
+- [fix][client] Fix invalid parameter type passed to Map.get in 
TopicsImpl.getListAsync method 
([#25069](https://github.com/apache/pulsar/pull/25069))
+- [fix][client] Fix producer synchronous retry handling in failPendingMessages 
method ([#25207](https://github.com/apache/pulsar/pull/25207))
+- [fix][client] Fix race condition between isDuplicate() and flushAsync() 
method in PersistentAcknowledgmentsGroupingTracker due to incorrect use Netty 
Recycler ([#25208](https://github.com/apache/pulsar/pull/25208))
+- [fix][client] Fix thread-safety of AutoProduceBytesSchema 
([#25014](https://github.com/apache/pulsar/pull/25014))
+- [fix][client] PIP-84: Skip processing a message in the message listener if 
the consumer epoch is no longer valid 
([#25007](https://github.com/apache/pulsar/pull/25007))
+- [fix][client] Send all chunkMessageIds to broker for redelivery 
([#25229](https://github.com/apache/pulsar/pull/25229))
+- [fix][client] Skip processing messages in the listener when the consumer has 
been closed ([#25006](https://github.com/apache/pulsar/pull/25006))
+- [fix][client]Producer stuck or geo-replication stuck due to wrong value of 
message.numMessagesInBatch 
([#25106](https://github.com/apache/pulsar/pull/25106))
+- [improve][client] Add null checks for MessageAcknowledger methods to prevent 
NullPointerException ([#25036](https://github.com/apache/pulsar/pull/25036))
+- [improve][client] Make authorization server metadata path configurable in 
AuthenticationOAuth2 ([#25052](https://github.com/apache/pulsar/pull/25052))
+- [improve][client] Test no exception could be thrown for invalid epoch in 
message ([#25013](https://github.com/apache/pulsar/pull/25013))
+- [improve][client]Reduce unnecessary getPartitionedTopicMetadata requests 
when using retry and DLQ topics. 
([#25172](https://github.com/apache/pulsar/pull/25172))
+- [feat][client] oauth2 trustcerts file and timeouts 
([#24944](https://github.com/apache/pulsar/pull/24944))
+- [improve] Upgrade Netty to 4.1.131.Final 
([#25232](https://github.com/apache/pulsar/pull/25232))
+- [fix][sec] Eliminate commons-collections dependency 
([#25024](https://github.com/apache/pulsar/pull/25024))
+- [improve] Upgrade Apache Commons library versions 
([#24983](https://github.com/apache/pulsar/pull/24983))
+- [fix] Handle TLS close_notify to avoid SslClosedEngineException: SSLEngine 
closed already ([#24986](https://github.com/apache/pulsar/pull/24986))
+
+### Pulsar IO and Pulsar Functions
+
+- [fix][fn] complete flushAsync before closeAsync in ProducerCache and wait 
for completion in closing the cache 
([#25140](https://github.com/apache/pulsar/pull/25140))
+- [fix][fn] Fix graceful Pulsar Function shutdown so that consumers and 
producers are closed ([#25157](https://github.com/apache/pulsar/pull/25157))
+- [feat][io] implement pip-297 for jdbc sinks 
([#25195](https://github.com/apache/pulsar/pull/25195))
+- [improve][io] Replace Qpid in tests with RabbitMQ in Testcontainers and 
upgrade RabbitMQ client version 
([#25085](https://github.com/apache/pulsar/pull/25085))
+
+### Others
+
+- [fix][proxy] Close client connection immediately when credentials expire and 
forwardAuthorizationCredentials is disabled 
([#25179](https://github.com/apache/pulsar/pull/25179))
+- [fix][proxy] Fix memory leaks in ParserProxyHandler 
([#25142](https://github.com/apache/pulsar/pull/25142))
+- [improve][proxy] Add regression tests for package upload with 'Expect: 
100-continue' ([#25211](https://github.com/apache/pulsar/pull/25211))
+- [fix][cli] Fix output of --print-metadata in cli consume 
([#25056](https://github.com/apache/pulsar/pull/25056))
+- [fix][cli] Fix some pulsar-admin topicPolicies commands exiting before async 
operations complete ([#25051](https://github.com/apache/pulsar/pull/25051))
+- [fix][misc] Allow JWT tokens in OpenID auth without nbf claim 
([#25197](https://github.com/apache/pulsar/pull/25197))
+- [improve][misc] Add log4j-layout-template-json to server distribution to 
enable e.g. ECS template support in log4j configurations for Pulsar server 
components. ([#25027](https://github.com/apache/pulsar/pull/25027))
+- [improve][misc]introduce log4j Console appender ConsoleJson 
([#25034](https://github.com/apache/pulsar/pull/25034))
+- [improve] Eliminate unnecessary duplicate schema lookups for partitioned 
topics in client and geo-replication 
([#25011](https://github.com/apache/pulsar/pull/25011))
+- [fix][cli] Print result of GetMessageIdByIndex command 
([#24446](https://github.com/apache/pulsar/pull/24446))
+- [improve][pip] PIP-453: Improve the metadata store threading model 
([#25173](https://github.com/apache/pulsar/pull/25173))
+- [fix][branch-4.0] Fix checkstyle
+- [fix][branch-4.0] Fix checkstyle issue in commit 83503521
+- [fix][branch-4.0] Remove unnecessary files added in 83503521
+- [feat] PIP-442: Add memory limits for CommandGetTopicsOfNamespace 
([#24833](https://github.com/apache/pulsar/pull/24833))
+
+### Tests & CI
+
+- [improve][build] Upgrade errorprone to 2.45.0 version 
([#25054](https://github.com/apache/pulsar/pull/25054))
+- [improve][build] Upgrade Testcontainers to 1.21.3 
([#24982](https://github.com/apache/pulsar/pull/24982))
+- [fix][build] Activate jdk21 and jdk24 profiles on Java 25 
([#25084](https://github.com/apache/pulsar/pull/25084))
+- [fix][build] Remove Confluent and Restlet maven repositories from top level 
pom.xml ([#24981](https://github.com/apache/pulsar/pull/24981))
+- [fix][test] Bump org.assertj:assertj-core from 3.27.5 to 3.27.7 
([#25186](https://github.com/apache/pulsar/pull/25186))
+- [fix][test] Fix ManagedCursorTest and NonDurableCursorTest flaky tests 
([#25101](https://github.com/apache/pulsar/pull/25101))
+- [fix][test] Fix Mockito stubbing race in TopicListServiceTest 
([#25227](https://github.com/apache/pulsar/pull/25227))
+- [fix][test] Fix ResourceQuotaCalculatorImplTest#testNeedToReportLocalUsage 
([#25247](https://github.com/apache/pulsar/pull/25247))
+- [fix][test] fix testBatchMetadataStoreMetrics. 
([#25241](https://github.com/apache/pulsar/pull/25241))
+- [fix][test] Fixed Non-Guaranteed Order in PoliciesDataTest.propertyAdmin 
([#24871](https://github.com/apache/pulsar/pull/24871))
+- [fix][test] Replace LZ4FastDecompressor with LZ4SafeDecompressor in test 
([#25032](https://github.com/apache/pulsar/pull/25032))
+- [fix][test] Wait for txn.abort() to complete to avoid 
AdminApiTransactionTest.testAnalyzeSubscriptionBacklogWithTransactionMarker() 
flaky test ([#25125](https://github.com/apache/pulsar/pull/25125))
+- [fix][test]Fix flaky ExtensibleLoadManagerImplTest_testGetMetrics 
([#25216](https://github.com/apache/pulsar/pull/25216))
+- [improve][test] Use Oxia project docker container for integration tests 
([#24995](https://github.com/apache/pulsar/pull/24995))
+
+For the complete list, check the [full 
changelog](https://github.com/apache/pulsar/compare/v4.0.8...v4.0.9).
diff --git a/release-notes/versioned/pulsar-4.1.3.md 
b/release-notes/versioned/pulsar-4.1.3.md
new file mode 100644
index 00000000000..d868df66296
--- /dev/null
+++ b/release-notes/versioned/pulsar-4.1.3.md
@@ -0,0 +1,150 @@
+---
+id: pulsar-4.1.3
+title: Apache Pulsar 4.1.3
+sidebar_label: Apache Pulsar 4.1.3
+---
+
+#### 2026-02-19
+
+### Library updates
+
+- [improve][broker] Upgrade bookkeeper to 4.17.3 
([#25166](https://github.com/apache/pulsar/pull/25166))
+- [fix][sec] Bump at.yawk.lz4:lz4-java from 1.9.0 to 1.10.1 in /pulsar-common 
([#25045](https://github.com/apache/pulsar/pull/25045))
+- [fix][sec] Bump org.apache.solr:solr-core from 9.8.0 to 9.10.1 in 
/pulsar-io/solr ([#25175](https://github.com/apache/pulsar/pull/25175))
+- [fix][sec] Eliminate commons-collections dependency 
([#25024](https://github.com/apache/pulsar/pull/25024))
+- [fix][sec] Exclude org.lz4:lz4-java and standardize on at.yawk.lz4-java to 
remediate CVE-2025-12183 and CVE-2025-66566 
([#25198](https://github.com/apache/pulsar/pull/25198))
+- [fix][sec] Upgrade jose4j to 0.9.6 to address CVE-2024-29371 
([#25095](https://github.com/apache/pulsar/pull/25095))
+- [fix][sec] Upgrade log4j to 2.25.3 to address CVE-2025-68161 
([#25102](https://github.com/apache/pulsar/pull/25102))
+- [fix][sec] Upgrade Netty to 4.1.130.Final 
([#25078](https://github.com/apache/pulsar/pull/25078))
+- [fix][sec] Upgrade OpenSearch to 2.19.4 to remediate CVE-2025-9624 
([#25206](https://github.com/apache/pulsar/pull/25206))
+- [fix][sec] Upgrade vertx to address CVE-2026-1002 
([#25152](https://github.com/apache/pulsar/pull/25152))
+- [fix][test] Upgrade docker-java to 3.7.0 
([#25209](https://github.com/apache/pulsar/pull/25209))
+- [improve][io] Upgrade Debezium version to 3.2.5.Final 
([#25029](https://github.com/apache/pulsar/pull/25029))
+- [improve][monitor] Upgrade OpenTelemetry to 1.56.0, Otel instrumentation to 
2.21.0 and Otel semconv to 1.37.0 
([#24994](https://github.com/apache/pulsar/pull/24994))
+- [improve][misc] Upgrade snappy version to 1.1.10.8 
([#25182](https://github.com/apache/pulsar/pull/25182))
+- [feat][meta] upgrade oxia version to 0.7.2 
([#24976](https://github.com/apache/pulsar/pull/24976))
+- [fix] Upgrade gson to 2.13.2 
([#25022](https://github.com/apache/pulsar/pull/25022))
+- [improve] Upgrade Apache Commons library versions 
([#24983](https://github.com/apache/pulsar/pull/24983))
+- [improve] Upgrade Caffeine to 3.2.3 
([#24984](https://github.com/apache/pulsar/pull/24984))
+- [improve] Upgrade Log4j2 to 2.25.2 and slf4j to 2.0.17 
([#24985](https://github.com/apache/pulsar/pull/24985))
+- [improve] Upgrade Netty to 4.1.131.Final 
([#25232](https://github.com/apache/pulsar/pull/25232))
+- [fix][sec] Bump github.com/dvsekhvalnov/jose2go from 1.6.0 to 1.7.0 in 
/pulsar-function-go ([#24987](https://github.com/apache/pulsar/pull/24987))
+
+### Broker
+
+- [fix][broker] Add schema version in rest produce api 
([#25004](https://github.com/apache/pulsar/pull/25004))
+- [fix][broker] Avoid split non-existent bundle 
([#25031](https://github.com/apache/pulsar/pull/25031))
+- [fix][broker] Fence reset cursor by timestamp to avoid concurrent 
timestamp-based position lookups 
([#25151](https://github.com/apache/pulsar/pull/25151))
+- [fix][broker] Fix chunked message loss when no consumers are available 
([#25077](https://github.com/apache/pulsar/pull/25077))
+- [fix][broker] Fix compaction horizon might be reset to an old position when 
phase two is interrupted ([#25119](https://github.com/apache/pulsar/pull/25119))
+- [fix][broker] Fix creation of replicated subscriptions for partitioned 
topics ([#24997](https://github.com/apache/pulsar/pull/24997))
+- [fix][broker] Fix cursor position persistence in ledger trimming 
([#25087](https://github.com/apache/pulsar/pull/25087))
+- [fix][broker] Fix httpProxyTimeout config 
([#25223](https://github.com/apache/pulsar/pull/25223))
+- [fix][broker] Fix incomplete futures in topic property update/delete methods 
([#25228](https://github.com/apache/pulsar/pull/25228))
+- [fix][broker] Fix issue with schemaValidationEnforced in geo-replication 
([#25012](https://github.com/apache/pulsar/pull/25012))
+- [fix][broker] Fix ManagedCursorImpl.asyncDelete() method may lose previous 
async mark delete properties in race condition 
([#25165](https://github.com/apache/pulsar/pull/25165))
+- [fix][broker] Fix markDeletedPosition race condition in 
ManagedLedgerImpl.maybeUpdateCursorBeforeTrimmingConsumedLedger() method 
([#25110](https://github.com/apache/pulsar/pull/25110))
+- [fix][broker] Fix MultiRolesTokenAuthorizationProvider error when 
subscription prefix doesn't match. 
([#25121](https://github.com/apache/pulsar/pull/25121))
+- [fix][broker] Fix potential NPE in InMemTransactionBuffer.appendBufferToTxn 
by returning a valid Position 
([#25039](https://github.com/apache/pulsar/pull/25039))
+- [fix][broker] fix prepareInitPoliciesCacheAsync in 
SystemTopicBasedTopicPoliciesService 
([#24980](https://github.com/apache/pulsar/pull/24980))
+- [fix][broker] Fix regex matching of namespace name which might contain a 
regex char ([#25136](https://github.com/apache/pulsar/pull/25136))
+- [fix][broker] Fix transactionMetadataFuture completeExceptionally with null 
value ([#25231](https://github.com/apache/pulsar/pull/25231))
+- [fix][broker] Fix various error-prone detected errors mainly in logging and 
String.format parameters ([#25059](https://github.com/apache/pulsar/pull/25059))
+- [fix][broker] Force EnsemblePolicies to resolve network location after 
rackInfoMap is updated due to changes in /ledgers/available znode 
([#25067](https://github.com/apache/pulsar/pull/25067))
+- [fix][broker] PIP-442: Fix race condition in async semaphore permit updates 
that causes memory limits to become ineffective 
([#25066](https://github.com/apache/pulsar/pull/25066))
+- [fix][broker] Prevent missed topic changes in topic watchers and schedule 
periodic refresh with patternAutoDiscoveryPeriod interval 
([#25188](https://github.com/apache/pulsar/pull/25188))
+- [fix][broker]Fix incorrect backlog if use multiple acknowledge types on the 
same subscription ([#25047](https://github.com/apache/pulsar/pull/25047))
+- [fix][broker]Fix ledgerHandle failed to read by using new BK API 
([#25199](https://github.com/apache/pulsar/pull/25199))
+- [fix][broker]Fix memory leak when using a customized ManagedLedger 
implementation ([#25016](https://github.com/apache/pulsar/pull/25016))
+- [fix][broker]Incorrect backlog that is larger than expected 
([#25037](https://github.com/apache/pulsar/pull/25037))
+- [fix][broker]Infinitely failed to delete topic if the first time failed and 
enabled transaction ([#25073](https://github.com/apache/pulsar/pull/25073))
+- [fix][broker]pulsar_ml_reads_inflight_bytes and 
pulsar_ml_reads_available_inflight_bytes are 0 at the same time 
([#25105](https://github.com/apache/pulsar/pull/25105))
+- [fix][broker]Topic deleting failed after removed local cluster from 
namespace policies ([#25114](https://github.com/apache/pulsar/pull/25114))
+- [fix][broker]Wrong backlog: expected 0 but got 1 
([#24938](https://github.com/apache/pulsar/pull/24938))
+- [fix][admin] Fix offload policy incompatible issue. 
([#25149](https://github.com/apache/pulsar/pull/25149))
+- [fix][admin] Refactor bookie affinity group sync operations to async in rest 
api ([#25050](https://github.com/apache/pulsar/pull/25050))
+- [fix][ml] Fix cursor backlog size to account for individual acks 
([#25089](https://github.com/apache/pulsar/pull/25089))
+- [fix][ml] Fix NoSuchElementException in EntryCountEstimator caused by a race 
condition ([#25177](https://github.com/apache/pulsar/pull/25177))
+- [fix][ml] Retry offload reads when OffloadReadHandleClosedException is 
encountered ([#25148](https://github.com/apache/pulsar/pull/25148))
+- [fix][meta] Metadata cache refresh might not take effect 
([#25246](https://github.com/apache/pulsar/pull/25246))
+- [improve][broker] Add idle timeout support for http 
([#25224](https://github.com/apache/pulsar/pull/25224))
+- [improve][broker] Add strictAuthMethod to require explicit authentication 
method ([#25185](https://github.com/apache/pulsar/pull/25185))
+- [improve][broker] Change log level from warn to debug when cursor 
mark-deleted position ledger doesn't exist 
([#25200](https://github.com/apache/pulsar/pull/25200))
+- [improve][broker] Change the log level from error to info when throwing 
NotAllowedException ([#25130](https://github.com/apache/pulsar/pull/25130))
+- [improve][broker] Enhance logging for adding schema failures in ServerCnx 
([#25048](https://github.com/apache/pulsar/pull/25048))
+- [improve][broker] Ensure metadata session state visibility and improve 
Unstable observability for ServiceUnitStateChannelImpl 
([#25132](https://github.com/apache/pulsar/pull/25132))
+- [improve][broker] Fix replicated subscriptions race condition with mark 
delete update and snapshot completion 
([#16651](https://github.com/apache/pulsar/pull/16651))
+- [improve][broker] Fix thread safety issue in 
ManagedCursorImpl.removeProperty  
([#25104](https://github.com/apache/pulsar/pull/25104))
+- [improve][broker] Give the detail error msg when authenticate failed with 
AuthenticationException ([#25221](https://github.com/apache/pulsar/pull/25221))
+- [improve][broker] Improve replicated subscription snapshot cache so that 
subscriptions can be replicated when mark delete position update is not 
frequent ([#25044](https://github.com/apache/pulsar/pull/25044))
+- [improve][broker] Optimize Reader creation in TopicPoliciesService 
([#24658](https://github.com/apache/pulsar/pull/24658))
+- [improve][broker] PIP-442: Add memory limits for topic list watcher (part 2) 
([#25070](https://github.com/apache/pulsar/pull/25070))
+- [improve][broker] Use atomic counter for ongoing transaction count 
([#25053](https://github.com/apache/pulsar/pull/25053))
+- [improve][broker]Add test for getting partitioned topic metadata with 
PulsarAdmin client ([#25026](https://github.com/apache/pulsar/pull/25026))
+- [improve][broker]Improve error response of failed to delete topic if it has 
replicators connected ([#24975](https://github.com/apache/pulsar/pull/24975))
+- [improve][broker]Remove the warn log that frequently prints 
([#25018](https://github.com/apache/pulsar/pull/25018))
+- [improve][admin] Add client side looping to analyze-backlog in Topics to 
avoid potential HTTP call timeout 
([#25127](https://github.com/apache/pulsar/pull/25127))
+- [improve][admin] Add counter for marker messages in 
PersistentTopics.analyzeSubscriptionBacklog() rest api 
([#25091](https://github.com/apache/pulsar/pull/25091))
+- [improve][meta] PIP-453: Improve the metadata store threading model 
([#25187](https://github.com/apache/pulsar/pull/25187))
+- [fix] Handle TLS close_notify to avoid SslClosedEngineException: SSLEngine 
closed already ([#24986](https://github.com/apache/pulsar/pull/24986))
+
+### Client
+
+- [fix][client] ControlledClusterFailover avoid unnecessary reconnection. 
([#25178](https://github.com/apache/pulsar/pull/25178))
+- [fix][client] Fix AutoProduceBytesSchema.clone() method 
([#25015](https://github.com/apache/pulsar/pull/25015))
+- [fix][client] Fix double recycling of the message in isValidConsumerEpoch 
method ([#25008](https://github.com/apache/pulsar/pull/25008))
+- [fix][client] Fix invalid parameter type passed to Map.get in 
TopicsImpl.getListAsync method 
([#25069](https://github.com/apache/pulsar/pull/25069))
+- [fix][client] Fix producer synchronous retry handling in failPendingMessages 
method ([#25207](https://github.com/apache/pulsar/pull/25207))
+- [fix][client] Fix race condition between isDuplicate() and flushAsync() 
method in PersistentAcknowledgmentsGroupingTracker due to incorrect use Netty 
Recycler ([#25208](https://github.com/apache/pulsar/pull/25208))
+- [fix][client] Fix thread-safety of AutoProduceBytesSchema 
([#25014](https://github.com/apache/pulsar/pull/25014))
+- [fix][client] PIP-84: Skip processing a message in the message listener if 
the consumer epoch is no longer valid 
([#25007](https://github.com/apache/pulsar/pull/25007))
+- [fix][client] Send all chunkMessageIds to broker for redelivery 
([#25229](https://github.com/apache/pulsar/pull/25229))
+- [fix][client] Skip processing messages in the listener when the consumer has 
been closed ([#25006](https://github.com/apache/pulsar/pull/25006))
+- [fix][client]Producer stuck or geo-replication stuck due to wrong value of 
message.numMessagesInBatch 
([#25106](https://github.com/apache/pulsar/pull/25106))
+- [improve][client] Add null checks for MessageAcknowledger methods to prevent 
NullPointerException ([#25036](https://github.com/apache/pulsar/pull/25036))
+- [improve][client] Make authorization server metadata path configurable in 
AuthenticationOAuth2 ([#25052](https://github.com/apache/pulsar/pull/25052))
+- [improve][client] Test no exception could be thrown for invalid epoch in 
message ([#25013](https://github.com/apache/pulsar/pull/25013))
+- [improve][client]Reduce unnecessary getPartitionedTopicMetadata requests 
when using retry and DLQ topics. 
([#25172](https://github.com/apache/pulsar/pull/25172))
+- [feat][client] oauth2 trustcerts file and timeouts 
([#24944](https://github.com/apache/pulsar/pull/24944))
+- [improve] Upgrade Netty to 4.1.131.Final 
([#25232](https://github.com/apache/pulsar/pull/25232))
+- [fix][sec] Eliminate commons-collections dependency 
([#25024](https://github.com/apache/pulsar/pull/25024))
+- [improve] Upgrade Apache Commons library versions 
([#24983](https://github.com/apache/pulsar/pull/24983))
+- [fix] Handle TLS close_notify to avoid SslClosedEngineException: SSLEngine 
closed already ([#24986](https://github.com/apache/pulsar/pull/24986))
+
+### Pulsar IO and Pulsar Functions
+
+- [fix][fn] complete flushAsync before closeAsync in ProducerCache and wait 
for completion in closing the cache 
([#25140](https://github.com/apache/pulsar/pull/25140))
+- [fix][fn] Fix graceful Pulsar Function shutdown so that consumers and 
producers are closed ([#25157](https://github.com/apache/pulsar/pull/25157))
+- [feat][io] implement pip-297 for jdbc sinks 
([#25195](https://github.com/apache/pulsar/pull/25195))
+- [improve][io] Replace Qpid in tests with RabbitMQ in Testcontainers and 
upgrade RabbitMQ client version 
([#25085](https://github.com/apache/pulsar/pull/25085))
+
+### Others
+
+- [fix][proxy] Close client connection immediately when credentials expire and 
forwardAuthorizationCredentials is disabled 
([#25179](https://github.com/apache/pulsar/pull/25179))
+- [fix][proxy] Fix memory leaks in ParserProxyHandler 
([#25142](https://github.com/apache/pulsar/pull/25142))
+- [improve][proxy] Add regression tests for package upload with 'Expect: 
100-continue' ([#25211](https://github.com/apache/pulsar/pull/25211))
+- [fix][cli] Fix output of --print-metadata in cli consume 
([#25056](https://github.com/apache/pulsar/pull/25056))
+- [fix][cli] Fix some pulsar-admin topicPolicies commands exiting before async 
operations complete ([#25051](https://github.com/apache/pulsar/pull/25051))
+- [fix][misc] Allow JWT tokens in OpenID auth without nbf claim 
([#25197](https://github.com/apache/pulsar/pull/25197))
+- [improve][misc] Add log4j-layout-template-json to server distribution to 
enable e.g. ECS template support in log4j configurations for Pulsar server 
components. ([#25027](https://github.com/apache/pulsar/pull/25027))
+- [improve][misc]introduce log4j Console appender ConsoleJson 
([#25034](https://github.com/apache/pulsar/pull/25034))
+- [improve] Eliminate unnecessary duplicate schema lookups for partitioned 
topics in client and geo-replication 
([#25011](https://github.com/apache/pulsar/pull/25011))
+
+### Tests & CI
+
+- [improve][build] Upgrade errorprone to 2.45.0 version 
([#25054](https://github.com/apache/pulsar/pull/25054))
+- [improve][build] Upgrade Testcontainers to 1.21.3 
([#24982](https://github.com/apache/pulsar/pull/24982))
+- [fix][build] Activate jdk21 and jdk24 profiles on Java 25 
([#25084](https://github.com/apache/pulsar/pull/25084))
+- [fix][build] Remove Confluent and Restlet maven repositories from top level 
pom.xml ([#24981](https://github.com/apache/pulsar/pull/24981))
+- [fix][test] Bump org.assertj:assertj-core from 3.27.5 to 3.27.7 
([#25186](https://github.com/apache/pulsar/pull/25186))
+- [fix][test] Fix ManagedCursorTest and NonDurableCursorTest flaky tests 
([#25101](https://github.com/apache/pulsar/pull/25101))
+- [fix][test] Fix Mockito stubbing race in TopicListServiceTest 
([#25227](https://github.com/apache/pulsar/pull/25227))
+- [fix][test] Fix ResourceQuotaCalculatorImplTest#testNeedToReportLocalUsage 
([#25247](https://github.com/apache/pulsar/pull/25247))
+- [fix][test] fix testBatchMetadataStoreMetrics. 
([#25241](https://github.com/apache/pulsar/pull/25241))
+- [fix][test] Fixed Non-Guaranteed Order in PoliciesDataTest.propertyAdmin 
([#24871](https://github.com/apache/pulsar/pull/24871))
+- [fix][test] Replace LZ4FastDecompressor with LZ4SafeDecompressor in test 
([#25032](https://github.com/apache/pulsar/pull/25032))
+- [fix][test] Wait for txn.abort() to complete to avoid 
AdminApiTransactionTest.testAnalyzeSubscriptionBacklogWithTransactionMarker() 
flaky test ([#25125](https://github.com/apache/pulsar/pull/25125))
+- [fix][test]Fix flaky ExtensibleLoadManagerImplTest_testGetMetrics 
([#25216](https://github.com/apache/pulsar/pull/25216))
+- [improve][test] Use Oxia project docker container for integration tests 
([#24995](https://github.com/apache/pulsar/pull/24995))
+
+For the complete list, check the [full 
changelog](https://github.com/apache/pulsar/compare/v4.1.2...v4.1.3).
diff --git a/releases.json b/releases.json
index 18c759e0a96..4a8cb34c49c 100644
--- a/releases.json
+++ b/releases.json
@@ -1,7 +1,9 @@
 [
+  "4.1.3",
   "4.1.2",
   "4.1.1",
   "4.1.0",
+  "4.0.9",
   "4.0.8",
   "4.0.7",
   "4.0.6",


Reply via email to