public IndexableField getField(FieldInfo fieldInfo) {fieldNames.add(fieldInfo.name);List<LazyField> values = fields.get(fieldInfo.number);if (null == values) {values = new ArrayList<>();fields.put(fieldInfo.number, values);}LazyField value = new LazyField(fieldInfo.name, fieldInfo.number);values.add(value);synchronized (this) {doc = null;}return value;}

public virtual IIndexableField GetField(FieldInfo fieldInfo){fieldNames.Add(fieldInfo.Name);IList<LazyField> values;if (!fields.TryGetValue(fieldInfo.Number, out values) || null == values){values = new List<LazyField>();fields[fieldInfo.Number] = values;}LazyField value = new LazyField(this, fieldInfo.Name, fieldInfo.Number);values.Add(value);lock (this){doc = null;}return value;}
