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
(v6.3.4#6332)