avro-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bryce Alcock (JIRA)" <j...@apache.org>
Subject [jira] [Created] (AVRO-1642) JVM Spec Violation 255 Parameter Limit Exceeded
Date Tue, 24 Feb 2015 19:43:05 GMT
Bryce Alcock created AVRO-1642:

             Summary: 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
            Priority: Critical

The JVM Spec indicates that:

?? 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. ??

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