You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avro.apache.org by "Micah Huff (JIRA)" <ji...@apache.org> on 2013/05/02 20:04:15 UTC

[jira] [Updated] (AVRO-1316) IDL code-generation generates too-long literals for very large schemas

     [ https://issues.apache.org/jira/browse/AVRO-1316?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Micah Huff updated AVRO-1316:
-----------------------------

    Attachment: AVRO-1316.patch

Instead of a single string constant, we split the String up into 65K chunks as a variable 'partX'. There is a new parse method for both Protocol and Schema that now accepts an array of string variables (e.g. parse(new String[]{ part1, part2})); If the protocol is not large enough to encounter this issue, the output of the generated java files does not change.
                
> IDL code-generation generates too-long literals for very large schemas
> ----------------------------------------------------------------------
>
>                 Key: AVRO-1316
>                 URL: https://issues.apache.org/jira/browse/AVRO-1316
>             Project: Avro
>          Issue Type: Bug
>          Components: java
>    Affects Versions: 1.7.5
>            Reporter: Jeremy Kahn
>            Priority: Minor
>              Labels: patch
>         Attachments: AVRO-1316.patch
>
>
> When I work from a very large IDL schema, the Java code generated includes a schema JSON literal that exceeds the length of the maximum allowed literal string ([65535 characters|http://stackoverflow.com/questions/8323082/size-of-initialisation-string-in-java]).  
> This creates weird Maven errors like: {{[ERROR] ...FooProtocol.java:[13,89] constant string too long}}.
> It might seem a little crazy, but a 64-kilobyte JSON protocol isn't outrageous at all for some of the more involved data structures, especially if we're including documentation strings etc.
> I believe the fix should be a bit more sensitivity to the length of the JSON literal (and a willingness to split it into more than one literal, joined by {{+}}), but I haven't figured out where that change needs to go. Has anyone else encountered this problem?

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