Skip to content

Commit 8c180a7

Browse files
authored
[7.x] Fix serialization of evaluation response. (#47557) (#47566)
1 parent c1be7a8 commit 8c180a7

File tree

2 files changed

+43
-1
lines changed

2 files changed

+43
-1
lines changed

x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/ml/action/EvaluateDataFrameAction.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,7 @@ public List<EvaluationMetricResult> getMetrics() {
217217
@Override
218218
public void writeTo(StreamOutput out) throws IOException {
219219
out.writeString(evaluationName);
220-
out.writeList(metrics);
220+
out.writeNamedWriteableList(metrics);
221221
}
222222

223223
@Override
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
/*
2+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
3+
* or more contributor license agreements. Licensed under the Elastic License;
4+
* you may not use this file except in compliance with the Elastic License.
5+
*/
6+
package org.elasticsearch.xpack.core.ml.action;
7+
8+
import org.elasticsearch.common.io.stream.NamedWriteableRegistry;
9+
import org.elasticsearch.common.io.stream.Writeable;
10+
import org.elasticsearch.test.AbstractWireSerializingTestCase;
11+
import org.elasticsearch.xpack.core.ml.action.EvaluateDataFrameAction.Response;
12+
import org.elasticsearch.xpack.core.ml.dataframe.evaluation.EvaluationMetricResult;
13+
import org.elasticsearch.xpack.core.ml.dataframe.evaluation.MlEvaluationNamedXContentProvider;
14+
import org.elasticsearch.xpack.core.ml.dataframe.evaluation.regression.MeanSquaredError;
15+
import org.elasticsearch.xpack.core.ml.dataframe.evaluation.regression.RSquared;
16+
17+
import java.util.Arrays;
18+
import java.util.List;
19+
20+
public class EvaluateDataFrameActionResponseTests extends AbstractWireSerializingTestCase<Response> {
21+
22+
@Override
23+
protected NamedWriteableRegistry getNamedWriteableRegistry() {
24+
return new NamedWriteableRegistry(new MlEvaluationNamedXContentProvider().getNamedWriteables());
25+
}
26+
27+
@Override
28+
protected Response createTestInstance() {
29+
String evaluationName = randomAlphaOfLength(10);
30+
List<EvaluationMetricResult> metrics =
31+
Arrays.asList(
32+
new MeanSquaredError.Result(randomDouble()),
33+
new RSquared.Result(randomDouble()));
34+
int numMetrics = randomIntBetween(0, metrics.size());
35+
return new Response(evaluationName, metrics.subList(0, numMetrics));
36+
}
37+
38+
@Override
39+
protected Writeable.Reader<Response> instanceReader() {
40+
return Response::new;
41+
}
42+
}

0 commit comments

Comments
 (0)