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