[ https://issues.apache.org/jira/browse/THRIFT-4555?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Can Celasun resolved THRIFT-4555. --------------------------------- Resolution: Fixed Fix Version/s: 0.12.0 > Getter of binary field in Java creates unnecessary copy > ------------------------------------------------------- > > Key: THRIFT-4555 > URL: https://issues.apache.org/jira/browse/THRIFT-4555 > Project: Thrift > Issue Type: Bug > Components: Java - Compiler > Affects Versions: 0.11.0 > Reporter: Joel Croteau > Priority: Major > Fix For: 0.12.0 > > > The get[field] method in generated Java code generates a new copy of a binary > field every time it is called. This seems incredibly inefficient. Take a > simple example struct: > {code:java} > struct StructWithBinary { > 1: required binary field; > } > {code} > a portion of the generated code for this is: > {code:java} > public byte[] getField() { > setField(org.apache.thrift.TBaseHelper.rightSize(field)); > return field == null ? null : field.array(); > } > ... > public StructWithBinary setField(java.nio.ByteBuffer field) { > this.field = org.apache.thrift.TBaseHelper.copyBinary(field); > return this; > } > {code} > So whenever getField is called, setField calls copyBinary and generates > another copy. This adds quite a lot of overhead to the getter here and should > be fixed. -- This message was sent by Atlassian JIRA (v7.6.3#76005)