Java 9 introduces covariant return types which allows one to have different return types if return type in the overridden method is a sub type. Since Java 9, few functions return ByteBuffer, whereas the parent method return Buffer, resulting in causing issues for Java 8 and below since for them the method does not exist.
Steps To Reproduce:
1. Setup ZooKeeper Server with JDK11.
2. Setup ZooKeeper Client with JDK8.
3. Try connecting the client and server.
Cast ByteBuffer instances to Buffer before calling the method.
There was a similar bug in the MongoDB community - https://jira.mongodb.org/browse/JAVA-2559
This is not a contribution.