You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Andrew Swan (Commented) (JIRA)" <ji...@apache.org> on 2012/04/02 01:28:27 UTC

[jira] [Commented] (CASSANDRA-4097) Classes in org.apache.cassandra.deps:avro:1.4.0-cassandra-1 clash with core Avro classes

    [ https://issues.apache.org/jira/browse/CASSANDRA-4097?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13243899#comment-13243899 ] 

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: https://issues.apache.org/jira/browse/CASSANDRA-4097
>             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: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira