Hi, there are multiple versions of com.google.guava:guava in flow-core-x\zookeeper. As shown in the following dependency tree, according to Maven's "nearest wins" strategy, only com.google.guava:guava:21.0 can be loaded, com.google.guava:guava:27.0.1-jre will be shadowed.
However, several methods defined in shadowed version com.google.guava:guava:27.0.1-jre are referenced by client project via org.apache.curator:curator-recipes:4.3.0 but missing in the actually loaded version com.google.guava:guava:21.0.
For instance, the following missing method(defined in com.google.guava:guava:27.0.1-jre) are actually referenced by flow-core-x\zookeeper, which will introduce a runtime error(i.e., "NoSuchMethodError") into flow-core-x\zookeeper.
com.google.common.reflect.TypeToken: java.lang.reflect.Type access$500(com.google.common.reflect.TypeToken) is invoked by flow-core-x\zookeeper via the following path:
Declare a direct dependency com.google.guava:guava:27.0.1-jre in the pom file of flow-core-x\zookeeper. Because version 27.0.1-jre includes the above missing methods and is compatible with other versions of com.google.guava:guava in the project.
This repair will introduce the following new dependencies:
com.google.guava:failureaccess:1.0.1
com.google.errorprone:error_prone_annotations:2.2.0
com.google.j2objc:j2objc-annotations:1.1
org.checkerframework:checker-qual:2.5.2
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
org.codehaus.mojo:animal-sniffer-annotations:1.17
com.google.code.findbugs:jsr305:3.0.2
Upgrade dependency org.apache.curator:curator-recipes from 4.3.0 to 5.0.0.Because the newer version org.apache.curator:curator-recipes:5.0.0 introduces com.google.guava:guava:27.0.1-jre, such changing can solve the problem.
This repair will introduce the following new dependencies:
commons-lang:commons-lang:2.6
Please let me know which solution do you prefer? I can submit a PR to fix it.
Thank you very much for your attention.
Best regards,
Issue description:
Hi, there are multiple versions of com.google.guava:guava in flow-core-x\zookeeper. As shown in the following dependency tree, according to Maven's "nearest wins" strategy, only com.google.guava:guava:21.0 can be loaded, com.google.guava:guava:27.0.1-jre will be shadowed.
However, several methods defined in shadowed version com.google.guava:guava:27.0.1-jre are referenced by client project via org.apache.curator:curator-recipes:4.3.0 but missing in the actually loaded version com.google.guava:guava:21.0.
For instance, the following missing method(defined in com.google.guava:guava:27.0.1-jre) are actually referenced by flow-core-x\zookeeper, which will introduce a runtime error(i.e., "NoSuchMethodError") into flow-core-x\zookeeper.
com.google.common.reflect.TypeToken: java.lang.reflect.Type access$500(com.google.common.reflect.TypeToken) is invoked by flow-core-x\zookeeper via the following path:
Suggested fixing solutions:
Declare a direct dependency com.google.guava:guava:27.0.1-jre in the pom file of flow-core-x\zookeeper. Because version 27.0.1-jre includes the above missing methods and is compatible with other versions of com.google.guava:guava in the project. This repair will introduce the following new dependencies: com.google.guava:failureaccess:1.0.1 com.google.errorprone:error_prone_annotations:2.2.0 com.google.j2objc:j2objc-annotations:1.1 org.checkerframework:checker-qual:2.5.2 com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava org.codehaus.mojo:animal-sniffer-annotations:1.17 com.google.code.findbugs:jsr305:3.0.2
Upgrade dependency org.apache.curator:curator-recipes from 4.3.0 to 5.0.0.Because the newer version org.apache.curator:curator-recipes:5.0.0 introduces com.google.guava:guava:27.0.1-jre, such changing can solve the problem. This repair will introduce the following new dependencies: commons-lang:commons-lang:2.6
Please let me know which solution do you prefer? I can submit a PR to fix it.
Thank you very much for your attention. Best regards,
Dependency tree----