Details
-
Improvement
-
Status: Resolved
-
Low
-
Resolution: Fixed
-
None
-
None
Description
Cassandra has this dependency:
... <dependency groupId="org.apache.cassandra.deps" artifactId="avro" version="1.4.0-cassandra-1"> ...
Unfortunately this JAR file contains classes in the org.apache.avro package that are incompatible with classes of the same fully-qualified name in the current release of Avro. For example, the inner class org.apache.avro.Schema$Parser found in Avro 1.6.1 is missing from the Cassandra version of that class. This makes it impossible to have both Cassandra and the latest Avro version on the classpath (my use case is an application that embeds Cassandra but also uses Avro 1.6.1 for unrelated serialization purposes). A simple and risk-free solution would be to change the package declaration of Cassandra's Avro classes from org.apache.avro to (say) org.apache.cassandra.avro, assuming that the above dependency is only used by Cassandra and no other projects (which seems a reasonable assumption given its name).