You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@kafka.apache.org by "Dong Lin (JIRA)" <ji...@apache.org> on 2017/11/05 21:28:00 UTC

[jira] [Commented] (KAFKA-6174) Investigate binary incompatibility issued in DescribeClusterOptions between 0.11 and 1.0

    [ https://issues.apache.org/jira/browse/KAFKA-6174?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16239730#comment-16239730 ] 

Dong Lin commented on KAFKA-6174:
---------------------------------

[~ijuma] I am still now sure why this change breaks binary compatibility. Even though we moved `DescribeClusterOptions timeoutMs(Integer timeoutMs)` from DescribeClusterOptions to AbstractOptions, the compiled jar should include a method with the same signature in the class DescribeClusterOptions. https://wiki.eclipse.org/Evolving_Java-based_APIs_2 suggests that it should be binary compatible to move a API method up type hierarchy. By your knowledge if binary compatibility, do you think this change in the source code will actually break binary compatibility?

Even if it breaks binary compatibility, if we were to fix binary compatibility, we will have to add the method `timeoutMs(Integer timeoutMs)` in all existing option classes, not just for 1.0, but for all future Kafka versions. I am not sure we should do this. Do you know our current policy regarding enforcement of binary compatibility, e.g. is it necessary even if we bump up the major version?

Also, do you know how to reproduce this issue?

> Investigate binary incompatibility issued in DescribeClusterOptions between 0.11 and 1.0
> ----------------------------------------------------------------------------------------
>
>                 Key: KAFKA-6174
>                 URL: https://issues.apache.org/jira/browse/KAFKA-6174
>             Project: Kafka
>          Issue Type: Bug
>            Reporter: Dong Lin
>            Assignee: Dong Lin
>
> From 0.11 to 1.0, we moved `DescribeClusterOptions timeoutMs(Integer timeoutMs)` from DescribeClusterOptions to AbstractOptions. User reports that code compiled against 0.11.0 fails when it is executed with 1.0 kafka-clients jar.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)