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

        Activity

          People

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

            Dates

            • Created:
              Updated:
              Resolved:

              Development