Uploaded image for project: 'Apache Cassandra'
  1. Apache Cassandra
  2. CASSANDRA-4097

Classes in org.apache.cassandra.deps:avro:1.4.0-cassandra-1 clash with core Avro classes

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Low
    • Resolution: Fixed
    • 2.0 beta 1
    • None
    • None

    Description

      Cassandra has this dependency:

      build.xml
      ...
      <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).

      Attachments

        Activity

          People

            jbellis Jonathan Ellis
            andrew.s Andrew Swan
            Jonathan Ellis
            Votes:
            2 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: