Hi Kirk, > it would be good to see a PR with some of these null edge cases clearly > spelled out in the JavaDoc. Then, once the KIP is accepted, those comments > could be updated with the intended future changes.
It a good idea, I open a Jira <https://issues.apache.org/jira/browse/KAFKA-19060> to focus on this issue. Best regards, Jiunn-Yang > Kirk True <k...@kirktrue.pro> 於 2025年3月25日 上午8:26 寫道: > > Hi Jiunn-Yang, > > Regardless of what form the KIP takes and when it's implemented, near term it > would be good to see a PR with some of these null edge cases clearly spelled > out in the JavaDoc. Then, once the KIP is accepted, those comments could be > updated with the intended future changes. > > Thanks, > Kirk > > On Sat, Mar 22, 2025, at 7:54 PM, 黃竣陽 wrote: >> Hello Ismael, >> >> Thanks for your comments. >> >> **Q1:** I believe this change should be introduced in Kafka 5.0. I will >> include a note about this in the KIP. >> >> **Q2, Q3:** >> Although these methods are not explicitly mentioned, they currently return >> null. While tracing the code, I found that null is returned when the timeout >> is set to zero, causing the method to return an empty result immediately. >> (ListOffsetEvent#emptyResults) >> >> Regardless of whether the existing JavaDoc mentions returning null, I >> believe this behavior should be explicitly documented, along with a note >> stating that it will be removed in Kafka 5.0. I will also address this in >> the KIP. >> >> Best Regards, >> Jiunn-Yang >> >>> Ismael Juma <m...@ismaeljuma.com> 於 2025年3月20日 凌晨4:45 寫道: >>> >>> Hi, >>> >>> Thanks for the KIP. A few comments: >>> >>> 1. Incompatible changes are generally not allowed in minor releases. Are >>> you proposing a change for a minor release (eg 4.1) or for a major release >>> (5.0)? >>> 2. Given that clients in 4.0 support brokers with version 2.1 or higher, >>> `offsetsForTimes` should never return maps with `null` values (check the >>> javadoc for the details of when this happens). We can perhaps consider this >>> a documentation fix (versus a behavior change). >>> 3. The other methods specified in the `public interfaces` section don't >>> specify if the returned maps can contain `null`. Can they? If so, we should >>> make that clear in the KIP along with the details of how we intend to make >>> the change in a compatible way. >>> >>> Thanks, >>> Ismael >>> >>> On Fri, Mar 14, 2025 at 4:31 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 >> >>