[ML] Close sample stream in post_data endpoint (#43235)
A static code analysis revealed that we are not closing the input stream in the post_data endpoint. This actually makes no difference in practice, as the particular InputStream implementation in this case is org.elasticsearch.common.bytes.BytesReferenceStreamInput and its close() method is a no-op. However, it is good practice to close the stream anyway.
This commit is contained in:
parent
a7bdea8a15
commit
3928c624a3
|
@ -17,6 +17,7 @@ import org.elasticsearch.xpack.ml.job.process.autodetect.AutodetectProcessManage
|
||||||
import org.elasticsearch.xpack.ml.job.process.autodetect.params.DataLoadParams;
|
import org.elasticsearch.xpack.ml.job.process.autodetect.params.DataLoadParams;
|
||||||
import org.elasticsearch.xpack.ml.job.process.autodetect.params.TimeRange;
|
import org.elasticsearch.xpack.ml.job.process.autodetect.params.TimeRange;
|
||||||
|
|
||||||
|
import java.io.InputStream;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
public class TransportPostDataAction extends TransportJobTaskAction<PostDataAction.Request, PostDataAction.Response> {
|
public class TransportPostDataAction extends TransportJobTaskAction<PostDataAction.Request, PostDataAction.Response> {
|
||||||
|
@ -37,8 +38,8 @@ public class TransportPostDataAction extends TransportJobTaskAction<PostDataActi
|
||||||
ActionListener<PostDataAction.Response> listener) {
|
ActionListener<PostDataAction.Response> listener) {
|
||||||
TimeRange timeRange = TimeRange.builder().startTime(request.getResetStart()).endTime(request.getResetEnd()).build();
|
TimeRange timeRange = TimeRange.builder().startTime(request.getResetStart()).endTime(request.getResetEnd()).build();
|
||||||
DataLoadParams params = new DataLoadParams(timeRange, Optional.ofNullable(request.getDataDescription()));
|
DataLoadParams params = new DataLoadParams(timeRange, Optional.ofNullable(request.getDataDescription()));
|
||||||
try {
|
try (InputStream contentStream = request.getContent().streamInput()) {
|
||||||
processManager.processData(task, analysisRegistry, request.getContent().streamInput(), request.getXContentType(),
|
processManager.processData(task, analysisRegistry, contentStream, request.getXContentType(),
|
||||||
params, (dataCounts, e) -> {
|
params, (dataCounts, e) -> {
|
||||||
if (dataCounts != null) {
|
if (dataCounts != null) {
|
||||||
listener.onResponse(new PostDataAction.Response(dataCounts));
|
listener.onResponse(new PostDataAction.Response(dataCounts));
|
||||||
|
|
Loading…
Reference in New Issue