Uploaded image for project: 'Flink'
  1. Flink
  2. FLINK-33949

METHOD_ABSTRACT_NOW_DEFAULT should be both source compatible and binary compatible

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Not A Problem
    • 1.19.0
    • 1.19.0
    • Test Infrastructure
    • None

    Description

      Currently  I'm trying to refactor some APIs annotated by @Public in FLIP-382: Unify the Provision of Diverse Metadata for Context-like APIs - Apache Flink - Apache Software Foundation. When an abstract method is changed into a default method, the japicmp maven plugin names this change METHOD_ABSTRACT_NOW_DEFAULT and considers it as source incompatible and binary incompatible.

      The reason maybe that if the abstract method becomes default, the logic in the default method will be ignored by the previous implementations.

      I create a test case in which a job is compiled with newly changed default method and submitted to the previous version. There is no exception thrown. Therefore, the METHOD_ABSTRACT_NOW_DEFAULT shouldn't be incompatible both for source and binary. We could add the following settings to override the default values for binary and source compatibility, such as:

      <overrideCompatibilityChangeParameters>
          <overrideCompatibilityChangeParameter>
             <compatibilityChange>METHOD_ABSTRACT_NOW_DEFAULT</compatibilityChange>
             <binaryCompatible>true</binaryCompatible>
             <sourceCompatible>true</sourceCompatible>
          </overrideCompatibilityChangeParameter>
      </overrideCompatibilityChangeParameters> 

      By the way, currently the master branch checks both source compatibility and binary compatibility between minor versions. According to Flink's API compatibility constraints, the master branch shouldn't check binary compatibility. There is already jira FLINK-33009 to track it and we should fix it as soon as possible.

       

       

       

      Attachments

        Activity

          People

            Unassigned Unassigned
            Wencong Liu Wencong Liu
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: