Jun Rao created KAFKA-920:
-----------------------------

             Summary: zkclient jar 0.2.0 is not compatible with 0.1.0
                 Key: KAFKA-920
                 URL: https://issues.apache.org/jira/browse/KAFKA-920
             Project: Kafka
          Issue Type: Bug
    Affects Versions: 0.8
            Reporter: Jun Rao
            Priority: Blocker


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.


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to