hi Jun > It seems that consumer.committed() has the same behavior. If you pass in a non-existing partition, it returns a map with a null value. So, if we want to make a change, it would be useful to make it consistent too.
yes, both consumers have same behavior. For another, `listStreamsGroupOffsets` and `listShareGroupOffsets` also add null value. They are not in production, but maybe we should keep the behavior for consistency. Best, Chia-Ping Jun Rao <j...@confluent.io.invalid> 於 2025年5月1日 週四 上午2:38寫道: > Hi, Chia-Ping, > > It seems that consumer.committed() has the same behavior. If you pass in a > non-existing partition, it returns a map with a null value. So, if we want > to make a change, it would be useful to make it consistent too. > > Thanks, > > Jun > > On Wed, Apr 30, 2025 at 9:05 AM Chia-Ping Tsai <chia7...@gmail.com> wrote: > > > hi Ken, > > > > there is another inconsistent case for the offset-related APIs. see > > https://github.com/apache/kafka/pull/19578#discussion_r2068913749 > > > > Best, > > Chia-Ping > > > > Chia-Ping Tsai <chia7...@gmail.com> 於 2025年4月30日 週三 下午7:03寫道: > > > > > hi all, > > > > > > >Also, it would be useful to think through the behavior > > > of ListOffsetsResult.partitionResult(final TopicPartition partition) > too. > > > > > > It seems there are three options: > > > > > > 1. Keep the current behavior - it's inconsistent, as other result > > > classes, such as DeleteRecordsResult, don't have a similar method. > > > 2. Deprecate the current method and add a new method that returns > all > > > futures. I prefer this approach as it would align with other result > > classes. > > > 3. Return null or KafkaFuture<null> - this is a bad idea, so let's > not > > > consider it. > > > > > > By the way, DescribeProducersResult#partitionResult(final > TopicPartition > > > partition) needs to be considered as well. > > > Best, > > > Chia-Ping > > > > > > Jun Rao <j...@confluent.io.invalid> 於 2025年4月30日 週三 上午6:30寫道: > > > > > >> Hi, Jiunn-Yang, > > >> > > >> Thanks for the KIP. > > >> > > >> It would be useful to think through the consistency with > > >> adminClient.listOffset(). Currently, if the offset for a timestamp > > doesn't > > >> exist, consumer.offsetsForTimes() returns a null value for that > > partition > > >> while adminClient.listOffset().all().get() returns a > > ListOffsetsResultInfo > > >> with -1 as the offset. Should we make the behavior more consistent in > > the > > >> KIP? Also, it would be useful to think through the behavior > > >> of ListOffsetsResult.partitionResult(final TopicPartition partition) > > too. > > >> > > >> Jun > > >> > > >> On Fri, Mar 14, 2025 at 4:33 AM 黃竣陽 <s7133...@gmail.com> wrote: > > >> > > >> > Hello everyone, > > >> > > > >> > I would like to start a discussion on KIP-1140: Avoid to return null > > >> value > > >> > in Map from public api of consumer > > >> > <https://cwiki.apache.org/confluence/x/mIuMEw> > > >> > > > >> > This proposal aims to improve the Kafka consumer API by ensuring > that > > >> the > > >> > Map it returns contains only non-null values, > > >> > aligning with the design philosophy of Java collections. This change > > >> > provides significantly more benefits than drawbacks, > > >> > enhancing API consistency and usability while reducing errors caused > > by > > >> > developer misuse. > > >> > > > >> > Best Regards, > > >> > Jiunn-Yang > > >> > > > > > >