Uploaded image for project: 'Kafka'
  1. Kafka
  2. KAFKA-920

zkclient jar 0.2.0 is not compatible with 0.1.0

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Blocker
    • Resolution: Fixed
    • Affects Version/s: 0.8.0
    • Fix Version/s: 0.8.0
    • Component/s: None
    • Labels:
      None

      Description

      Just realized that zkclient 0.2.0 introduced a non-backward compatible api. In 0.1.0, it has
      public void writeData(java.lang.String path, java.lang.Object datat)
      public void writeData(java.lang.String path, java.lang.Object datat, int expectedVersion)

      In 0.2.0, they are changed to

      public Stat writeData(java.lang.String path, java.lang.Object datat)
      public Stat writeData(java.lang.String path, java.lang.Object datat, int expectedVersion)

      This means that If an application uses Kafka and also drags in another library (X) that depends on zkclient 0.1.0 (and uses "void writeData())", then when they upgrade to Kafka 0.8 consumer (which uses zkclient 0.2.0), their application can't just upgrade to zkclient 0.2.0 since library X's call to "void writeData()" will fail because of the signature change. Since zkclient 0.1.0 is widely used, this issue may affect many applications.

      This non-backward compatible change was introduced by me since I didn't realize it's a signature change then. I am trying to see if zkclient can release a new version that's compatible. If that can't be done in time, we will have to downgrade zkclient to 0.1.0 and add the needed ZK functionality inside Kafka. This is not ideal, but can solve the issue quicker.

        Attachments

          Activity

            People

            • Assignee:
              junrao Jun Rao
              Reporter:
              junrao Jun Rao
            • Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: