hudi-datahub-sync-bundle shades in io.acryl:datahub-client-java8, which carries its own copy of Avro (450 org/apache/avro/*.class entries in datahub-client-java8-0.15.0rc20.jar). Nothing in the shade config filters them, so they land in the bundle unrelocated.
Any consumer that puts the bundle on its classpath ahead of its own Avro then binds against DataHub's stale copy instead of the Avro the rest of the application uses. The failure is silent and surfaces far from the cause, as a missing or differently-typed method on org.apache.avro.Schema.
The shade config already filters signature files and *.proto. It needs one more filter excluding org/apache/avro/** from the DataHub client, so the bundle stops carrying a second Avro.
hudi-datahub-sync-bundleshades inio.acryl:datahub-client-java8, which carries its own copy of Avro (450org/apache/avro/*.classentries indatahub-client-java8-0.15.0rc20.jar). Nothing in the shade config filters them, so they land in the bundle unrelocated.Any consumer that puts the bundle on its classpath ahead of its own Avro then binds against DataHub's stale copy instead of the Avro the rest of the application uses. The failure is silent and surfaces far from the cause, as a missing or differently-typed method on
org.apache.avro.Schema.The shade config already filters signature files and
*.proto. It needs one more filter excludingorg/apache/avro/**from the DataHub client, so the bundle stops carrying a second Avro.