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

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

    Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Minor
    • Resolution: Fixed
    • Fix Version/s: 2.0 beta 1
    • Component/s: None
    • Labels:
      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

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

              Dates

              • Created:
                Updated:
                Resolved: