cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrew Swan (Commented) (JIRA)" <>
Subject [jira] [Commented] (CASSANDRA-4097) Classes in org.apache.cassandra.deps:avro:1.4.0-cassandra-1 clash with core Avro classes
Date Sun, 01 Apr 2012 23:28:27 GMT


Andrew Swan commented on CASSANDRA-4097:

In the {{lib}} folder there are two files with "{{avro}}" in the name:
* {{lib/avro-1.4.0-fixes.jar}}
* {{lib/avro-1.4.0-sources-fixes.jar}}

The latter JAR file indeed contains the source code for the classes that need their packages
changed, but this JAR file looks to be a build artifact (e.g. it has a generated manifest
file), not a genuine source folder. Surely that source is elsewhere. If I'm to contribute
a patch that moves these classes, I'm going to need to change the real source files, not just
the contents of this JAR file, correct?
> Classes in org.apache.cassandra.deps:avro:1.4.0-cassandra-1 clash with core Avro classes
> ----------------------------------------------------------------------------------------
>                 Key: CASSANDRA-4097
>                 URL:
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Core
>    Affects Versions: 0.7.0
>            Reporter: Andrew Swan
>            Priority: Minor
> Cassandra has this dependency:
> {code:title=build.xml}...
> <dependency groupId="org.apache.cassandra.deps" artifactId="avro" version="1.4.0-cassandra-1">
> ...{code}
> 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).

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:!default.jspa
For more information on JIRA, see:


View raw message