Skip to content

Commit 227034e

Browse files
Remove some duplication from BulkRequestParser (#109302)
No need to duplicate most of the index-request building 3x.
1 parent 5ef4e81 commit 227034e

File tree

1 file changed

+18
-51
lines changed

1 file changed

+18
-51
lines changed

server/src/main/java/org/elasticsearch/action/bulk/BulkRequestParser.java

Lines changed: 18 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -341,58 +341,25 @@ public void parse(
341341

342342
// we use internalAdd so we don't fork here, this allows us not to copy over the big byte array to small chunks
343343
// of index request.
344-
if ("index".equals(action)) {
345-
if (opType == null) {
346-
indexRequestConsumer.accept(
347-
new IndexRequest(index).id(id)
348-
.routing(routing)
349-
.version(version)
350-
.versionType(versionType)
351-
.setPipeline(pipeline)
352-
.setIfSeqNo(ifSeqNo)
353-
.setIfPrimaryTerm(ifPrimaryTerm)
354-
.source(sliceTrimmingCarriageReturn(data, from, nextMarker, xContentType), xContentType)
355-
.setDynamicTemplates(dynamicTemplates)
356-
.setRequireAlias(requireAlias)
357-
.setRequireDataStream(requireDataStream)
358-
.setListExecutedPipelines(listExecutedPipelines),
359-
type
360-
);
361-
} else {
362-
indexRequestConsumer.accept(
363-
new IndexRequest(index).id(id)
364-
.routing(routing)
365-
.version(version)
366-
.versionType(versionType)
367-
.create("create".equals(opType))
368-
.setPipeline(pipeline)
369-
.setIfSeqNo(ifSeqNo)
370-
.setIfPrimaryTerm(ifPrimaryTerm)
371-
.source(sliceTrimmingCarriageReturn(data, from, nextMarker, xContentType), xContentType)
372-
.setDynamicTemplates(dynamicTemplates)
373-
.setRequireAlias(requireAlias)
374-
.setRequireDataStream(requireDataStream)
375-
.setListExecutedPipelines(listExecutedPipelines),
376-
type
377-
);
344+
if ("index".equals(action) || "create".equals(action)) {
345+
var indexRequest = new IndexRequest(index).id(id)
346+
.routing(routing)
347+
.version(version)
348+
.versionType(versionType)
349+
.setPipeline(pipeline)
350+
.setIfSeqNo(ifSeqNo)
351+
.setIfPrimaryTerm(ifPrimaryTerm)
352+
.source(sliceTrimmingCarriageReturn(data, from, nextMarker, xContentType), xContentType)
353+
.setDynamicTemplates(dynamicTemplates)
354+
.setRequireAlias(requireAlias)
355+
.setRequireDataStream(requireDataStream)
356+
.setListExecutedPipelines(listExecutedPipelines);
357+
if ("create".equals(action)) {
358+
indexRequest = indexRequest.create(true);
359+
} else if (opType != null) {
360+
indexRequest = indexRequest.create("create".equals(opType));
378361
}
379-
} else if ("create".equals(action)) {
380-
indexRequestConsumer.accept(
381-
new IndexRequest(index).id(id)
382-
.routing(routing)
383-
.version(version)
384-
.versionType(versionType)
385-
.create(true)
386-
.setPipeline(pipeline)
387-
.setIfSeqNo(ifSeqNo)
388-
.setIfPrimaryTerm(ifPrimaryTerm)
389-
.source(sliceTrimmingCarriageReturn(data, from, nextMarker, xContentType), xContentType)
390-
.setDynamicTemplates(dynamicTemplates)
391-
.setRequireAlias(requireAlias)
392-
.setRequireDataStream(requireDataStream)
393-
.setListExecutedPipelines(listExecutedPipelines),
394-
type
395-
);
362+
indexRequestConsumer.accept(indexRequest, type);
396363
} else if ("update".equals(action)) {
397364
if (version != Versions.MATCH_ANY || versionType != VersionType.INTERNAL) {
398365
throw new IllegalArgumentException(

0 commit comments

Comments
 (0)