AbstractElasticIndex: Open XContentBuilder in try-with-resource

Change-Id: I6f1de6573bf0c1e8932f96c4c4c1a819a955fbb1
This commit is contained in:
David Pursehouse
2018-04-17 12:07:34 +02:00
parent aaa40aa1b8
commit ebf9f4ef24

View File

@@ -161,20 +161,23 @@ abstract class AbstractElasticIndex<K, V> implements Index<K, V> {
}
private String toDoc(V v) throws IOException {
XContentBuilder builder = jsonBuilder().startObject();
for (Values<V> values : schema.buildFields(v, fillArgs)) {
String name = values.getField().getName();
if (values.getField().isRepeatable()) {
builder.field(
name,
Streams.stream(values.getValues()).filter(e -> shouldAddElement(e)).collect(toList()));
} else {
Object element = Iterables.getOnlyElement(values.getValues(), "");
if (shouldAddElement(element)) {
builder.field(name, element);
try (XContentBuilder builder = jsonBuilder().startObject()) {
for (Values<V> values : schema.buildFields(v, fillArgs)) {
String name = values.getField().getName();
if (values.getField().isRepeatable()) {
builder.field(
name,
Streams.stream(values.getValues())
.filter(e -> shouldAddElement(e))
.collect(toList()));
} else {
Object element = Iterables.getOnlyElement(values.getValues(), "");
if (shouldAddElement(element)) {
builder.field(name, element);
}
}
}
return builder.endObject().string();
}
return builder.endObject().string();
}
}