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

Doug Cutting updated AVRO-1169:
-------------------------------

       Resolution: Fixed
    Fix Version/s: 1.7.3
         Assignee: Hernan Otero
           Status: Resolved  (was: Patch Available)

I just committed this.  Thanks, Hernan!
                
> Reduce memory footprint of ResolvingGrammarGenerator
> ----------------------------------------------------
>
>                 Key: AVRO-1169
>                 URL: https://issues.apache.org/jira/browse/AVRO-1169
>             Project: Avro
>          Issue Type: Improvement
>          Components: java
>    Affects Versions: 1.7.0
>            Reporter: Hernan Otero
>            Assignee: Hernan Otero
>             Fix For: 1.7.3
>
>         Attachments: AVRO-1169.patch
>
>
> We noticed an OutOfMemory error in one of our client applications (GUI) when 
> trying to decode messages that require resolving.
> It turns out the use of Schema.toString(true) in method generate(Schema, 
> Schema, Map<LitS,Symbol>) (and to a less extent resolveRecords(Schema, 
> Schema, Map<LitS,Symbol>) too) in our very-large-Schema use-case is the main 
> reason for this.
> We found that patching this class to use Schema.getFullName() instead of 
> Schema.toString(true) resolves our issue, and we thought this might benefit 
> other users (and shouldn't affect anybody as this message is not actually 
> being logged/reported).
> The change involves changing this (in method generate()):
> {code}
>     return Symbol.error("Found " + writer.toString(true)
>                         + ", expecting " + reader.toString(true));
> {code}
> into this:
> {code}
>     return Symbol.error("Found " + writer.getFullName()
>                         + ", expecting " + reader.getFullName());
> {code}
> And this (in method resolveRecords()):
> {code}
>             result = Symbol.error("Found " + writer.toString(true)
>                                   + ", expecting " + reader.toString(true));
> {code}
> into this:
> {code}
>             result = Symbol.error("Found " + writer.getFullName()
>                                   + ", expecting " + reader.getFullName());
> {code}
> Thanks in advance,
> Hernan

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

Reply via email to