You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avro.apache.org by "George Fletcher (JIRA)" <ji...@apache.org> on 2011/09/15 15:39:09 UTC

[jira] [Commented] (AVRO-803) Java generated Avro classes make using Avro painful and surprising

    [ https://issues.apache.org/jira/browse/AVRO-803?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13105358#comment-13105358 ] 

George Fletcher commented on AVRO-803:
--------------------------------------

We've run into this as well and for now, I wrote my own velocity template that makes the data elements private and generates getters/setters (similar to what's in 1.6.0). In these getters/setters I convert the CharSequence to a String and then do copies for arrays and maps to convert the Utf8 type to a String. This is an ugly work around and has a big performance impact. Are there any plans to fix this in 1.6.0?

> Java generated Avro classes make using Avro painful and surprising
> ------------------------------------------------------------------
>
>                 Key: AVRO-803
>                 URL: https://issues.apache.org/jira/browse/AVRO-803
>             Project: Avro
>          Issue Type: Improvement
>          Components: java
>    Affects Versions: 1.5.0
>         Environment: Any
>            Reporter: Sam Pullara
>             Fix For: 1.6.0
>
>
> Currently the Avro generated Java classes expose CharSequence in their API. However, you cannot use any old CharSequence when interacting with them. In fact, you have to use the Utf8 class if you want to get consistent results. I think that Avro should work with any CharSequence if that is the API. Here is an example where this happens:
> https://github.com/spullara/avro-generated-code/blob/master/src/test/java/AnnoyingTest.java
> That prints out 'false' three times unexpectedly. If you can't get it to print 'true' three times then you should probably change it back to Utf8.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira