diff --git a/tajo-common/src/main/java/org/apache/tajo/util/KeyValueSet.java b/tajo-common/src/main/java/org/apache/tajo/util/KeyValueSet.java index 6edb54775b..c1e7092c13 100644 --- a/tajo-common/src/main/java/org/apache/tajo/util/KeyValueSet.java +++ b/tajo-common/src/main/java/org/apache/tajo/util/KeyValueSet.java @@ -37,9 +37,7 @@ public class KeyValueSet implements ProtoObject, Cloneable, Gs public static final String TRUE_STR = "true"; public static final String FALSE_STR = "false"; - private KeyValueSetProto.Builder builder = KeyValueSetProto.newBuilder(); - - @Expose private Map keyVals; + @Expose private Map keyVals; public KeyValueSet() { keyVals = TUtil.newHashMap(); @@ -221,27 +219,22 @@ public boolean equals(Object object) { @Override public Object clone() throws CloneNotSupportedException { KeyValueSet keyValueSet = (KeyValueSet) super.clone(); - keyValueSet.builder = KeyValueSetProto.newBuilder(); keyValueSet.keyVals = keyVals != null ? new HashMap(keyVals) : null; return keyValueSet; } @Override public KeyValueSetProto getProto() { - if (builder == null) { - builder = KeyValueSetProto.newBuilder(); - } else { - builder.clear(); - } + KeyValueSetProto.Builder builder = KeyValueSetProto.newBuilder(); - KeyValueProto.Builder kvBuilder; + KeyValueProto.Builder kvBuilder = KeyValueProto.newBuilder(); if(this.keyVals != null) { for(Entry kv : keyVals.entrySet()) { - kvBuilder = KeyValueProto.newBuilder(); kvBuilder.setKey(kv.getKey()); - kvBuilder.setValue(kv.getValue()); builder.addKeyval(kvBuilder.build()); + + kvBuilder.clear(); } } return builder.build();