You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avro.apache.org by "Thiruvalluvan M. G. (JIRA)" <ji...@apache.org> on 2018/12/30 04:10:01 UTC
[jira] [Updated] (AVRO-2068) Improve EnumSchema constructor
performance
[ https://issues.apache.org/jira/browse/AVRO-2068?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Thiruvalluvan M. G. updated AVRO-2068:
--------------------------------------
Component/s: java
> Improve EnumSchema constructor performance
> ------------------------------------------
>
> Key: AVRO-2068
> URL: https://issues.apache.org/jira/browse/AVRO-2068
> Project: Apache Avro
> Issue Type: Improvement
> Components: java
> Reporter: Zoltan Farkas
> Priority: Trivial
>
> at https://github.com/apache/avro/blob/master/lang/java/avro/src/main/java/org/apache/avro/Schema.java#L745 :
> {code}
> ....
> private static class EnumSchema extends NamedSchema {
> private final List<String> symbols;
> private final Map<String,Integer> ordinals;
> public EnumSchema(Name name, String doc,
> LockableArrayList<String> symbols) {
> super(Type.ENUM, name, doc);
> this.symbols = symbols.lock();
> this.ordinals = new HashMap<String,Integer>();
> int i = 0;
> for (String symbol : symbols)
> if (ordinals.put(validateName(symbol), i++) != null)
> throw new SchemaParseException("Duplicate enum symbol: "+symbol);
> }
> ....
> {code}
> should be changed to:
> {code}
> ....
> private static class EnumSchema extends NamedSchema {
> private final List<String> symbols;
> private final Map<String,Integer> ordinals;
> public EnumSchema(Name name, String doc,
> LockableArrayList<String> symbols) {
> super(Type.ENUM, name, doc);
> this.symbols = symbols.lock();
> this.ordinals = new HashMap<String,Integer>(symbols.size());
> int i = 0;
> for (String symbol : symbols)
> if (ordinals.put(validateName(symbol), i++) != null)
> throw new SchemaParseException("Duplicate enum symbol: "+symbol);
> }
> ....
> {code}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)