avro-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sean Busbey (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (AVRO-1642) JVM Spec Violation 255 Parameter Limit Exceeded
Date Mon, 11 Apr 2016 17:27:25 GMT

    [ https://issues.apache.org/jira/browse/AVRO-1642?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15235540#comment-15235540

Sean Busbey commented on AVRO-1642:

Downstream users of Apache Avro shouldn't be using any SNAPSHOTs we publish, they're just
for internal testing on the team.

If you need to use this beyond testing, I'd recommend downloading the source and building
it locally.

I don't think we have an ETA on 1.8.1 yet. [~barryjones], if you send a note to dev@avro.apache.org
asking for one we can get the discussion rolling to find a release manager.

> JVM Spec Violation 255 Parameter Limit Exceeded 
> ------------------------------------------------
>                 Key: AVRO-1642
>                 URL: https://issues.apache.org/jira/browse/AVRO-1642
>             Project: Avro
>          Issue Type: Bug
>          Components: java
>    Affects Versions: 1.7.7
>         Environment: Windows/Linux all Java
>            Reporter: Bryce Alcock
>            Assignee: Barry Jones
>            Priority: Critical
>              Labels: build, maven, specific
>             Fix For: 1.8.1
>         Attachments: AVRO-1642-0.patch, AVRO-1642-1.patch, avro-1642-fail.tar
> The JVM Spec indicates that:
> {quote}The number of method parameters is limited to 255 by the definition of a method
descriptor (ยง4.3.3), where the limit includes one unit for this in the case of instance or
interface method invocations. Note that a method descriptor is defined in terms of a notion
of method parameter length in which a parameter of type long or double contributes two units
to the length, so parameters of these types further reduce the limit. {quote}
> Avro Generated Java code with say more than 255 fields will create a constructor that
is not valid and won't compile.
> Simple test is to create a 256 field avro schema, use the avro-maven auto code gen plugin,
and try to compile the resulting class.
> DON'T use linux when doing this use windows, my suspicion is that Linux JavaC generates
invalid byte code but does not complain.
> Windows will correctly complain indicating that you are a violator of the JVM specification.

This message was sent by Atlassian JIRA

View raw message