- Fix warn log on the producer side when duplicated messages have been dropped #8729
- Allow setting subscription name for Reader #8801
- Fix authParams showing in log with secret string(*) #8910
- Avoid enabling DLQ on Key_Shared subscription #9163
- Add support for the JSON format token #9313
- Expose reached end of topic API for Reader/Consumer #9381
- Fix returned a completed future when acknowledging a batch message before complete the individual acknowledgments #9383
- Fix NPE when strip checksum for the producer #9400
- Fix inconsistent equals and hashCode for MessageIds #9440
- Allow disabling producer max queue size #9650
- Include pulsar-client-admin-api in the shaded version of pulsar-client-admin #9689
- Fix NPE in the ClientCnx #9761
- Fix DLQ can't work with AUTO_CONSUME schema #9935
- Fix NPE caused by null value of SchemaInfo's properties #9985
- Support multi-topic reader #9995
- Process messages from different partitions on different listener threads #10017
- Ensure close resource to avoid memory leak #10028
- Support set start message ID for each topic/partition on Reader #10033
- Add a JSON RecordBuilder to the GenericJsonSchema #10052
- Allow GenericRecord to wrap any Java Object #10057
- Fix NPE while configuring consumer builder #10063
- Support get native schema #10076
- Support KeyValue on Message.getValue() when using AutoConsumeSchema #10107
- Change the default retry topic name and dead letter topic name #10129
- Fix KeyValue with SEPARATED encoding for the GenericObject #10186
- Ensure download schema before decoding the payload for the AUTO_CONSUME schema #10248
- Fix typo of the maxPendingChunkedMessage method #10223
- Trait NONE schema as BYTE schema for AUTO_CONSUME schema #10277
- Fix pause consume issue with MultiTopicsConsumerImpl #10305
- Make message consumption thread safe and lock-free #10352
- Reset state before recycling OpSendMsg instance #10405
- Fix hasMessageAvailable return true but can't read message #10414
- Fix NPE in GenericJsonRecord #10482
- Fix behaviour of Schema.AUTO_CONSUME() with KeyValueSchema and multi versions #10492
- Avoid sending flow requests with zero permits #10507
- Make failPendingMessages called from within the ProducerImpl object mutex #10528
- Add schemaType field in SchemaHash #10573
- Fix NPE when ACK grouping tracker checks duplicated message id #10586
- Support consume multiple schema types messages by AutoConsumeSchema #10604
- Fixed issues in pulsar-client shading configuration #10614
- MessageCrypto interface should not expose Netty ByteBuf class in the API #10616
- Added org.apache.bookkeeper:cpu-affinity to shaded profile #10681
- Skip the periodic re-check of the partitions count on non-partitioned topic #10708
- Unlock the write lock of the UnAckedMessageTracker before call redeliverUnacknowledgedMessages #10768
- Fix AutoConsumeSchema decode data without schema version #10811