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 (Created) (JIRA)" <ji...@apache.org> on 2012/03/28 06:06:37 UTC

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

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: 1.0.8
            Reporter: Andrew Swan


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

        

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

Posted by "Andrew Swan (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-4097?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13243101#comment-13243101 ] 

Andrew Swan commented on CASSANDRA-4097:
----------------------------------------

Hi Jonathan,

I've checked out the source from http://git-wip-us.apache.org/repos/asf/cassandra.git, and there's no {{lib/avro}} directory. There's a {{lib}} directory, but the only sub-directory it contains is "licenses". Am I looking in the right place?
                
> 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

        

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

Posted by "Andrew Swan (Commented) (JIRA)" <ji...@apache.org>.
    [ 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

        

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

Posted by "rahul jain (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-4097?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13490585#comment-13490585 ] 

rahul jain commented on CASSANDRA-4097:
---------------------------------------

Hi Andrew,

I am also facing same issue. What was your resolution? Have you already submitted your change? Can you please share your fix?

Regards,
Rahul

                
> 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
For more information on JIRA, see: http://www.atlassian.com/software/jira

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

Posted by "Andrew Swan (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-4097?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13491036#comment-13491036 ] 

Andrew Swan commented on CASSANDRA-4097:
----------------------------------------

Hi Rahul,

For unrelated reasons we stopped using Avro, so I don't run into this problem any more.

However it seems like it would be easy to fix - just move the conflicting classes from one package to another, and rebuild any dependent projects (e.g. Cassandra itself). I guess there aren't enough people using both Avro and Cassandra in the same JVM for this to be worth solving.
                
> 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
For more information on JIRA, see: http://www.atlassian.com/software/jira

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

Posted by "Jonathan Ellis (Issue Comment Edited) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-4097?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13241412#comment-13241412 ] 

Jonathan Ellis edited comment on CASSANDRA-4097 at 3/29/12 5:35 PM:
--------------------------------------------------------------------

{{ls lib/*avro*}}
                
      was (Author: jbellis):
    ls lib/*avro*
                  
> 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

        

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

Posted by "Jonathan Ellis (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-4097?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13243140#comment-13243140 ] 

Jonathan Ellis commented on CASSANDRA-4097:
-------------------------------------------

look for avro in the lib dir
                
> 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

        

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

Posted by "Jonathan Ellis (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CASSANDRA-4097?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jonathan Ellis updated CASSANDRA-4097:
--------------------------------------

             Priority: Minor  (was: Major)
    Affects Version/s:     (was: 1.0.8)
                       0.7.0

ls lib/*avro*
                
> 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

        

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

Posted by "Andrew Swan (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-4097?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13240156#comment-13240156 ] 

Andrew Swan commented on CASSANDRA-4097:
----------------------------------------

I'm willing to submit a patch, but I don't even know where the source of the above dependency is to be found. It's not in the Cassandra project itself, nor is it listed among the [ASF Git repositories|http://git-wip-us.apache.org/repos/asf].
                
> 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: 1.0.8
>            Reporter: Andrew Swan
>
> 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