Previously, the id of the `GetDataFrameAnalyticsStatsAction.Request` could be `null` which caused NPE on serialization as `writeString` is used (it doesn't accept null values). This commit ensures the id is never null. Closes #54807 Backport of #54808
This commit is contained in:
parent
2fdbed7797
commit
0049e9467b
|
@ -54,7 +54,7 @@ public class GetDataFrameAnalyticsStatsAction extends ActionType<GetDataFrameAna
|
|||
|
||||
public static final ParseField ALLOW_NO_MATCH = new ParseField("allow_no_match");
|
||||
|
||||
private String id;
|
||||
private String id = "_all";
|
||||
private boolean allowNoMatch = true;
|
||||
private PageParams pageParams = PageParams.defaultParams();
|
||||
|
||||
|
@ -94,7 +94,7 @@ public class GetDataFrameAnalyticsStatsAction extends ActionType<GetDataFrameAna
|
|||
}
|
||||
|
||||
public void setId(String id) {
|
||||
this.id = id;
|
||||
this.id = ExceptionsHelper.requireNonNull(id, DataFrameAnalyticsConfig.ID.getPreferredName());
|
||||
}
|
||||
|
||||
public String getId() {
|
||||
|
|
|
@ -0,0 +1,34 @@
|
|||
/*
|
||||
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
||||
* or more contributor license agreements. Licensed under the Elastic License;
|
||||
* you may not use this file except in compliance with the Elastic License.
|
||||
*/
|
||||
|
||||
package org.elasticsearch.xpack.core.ml.action;
|
||||
|
||||
import org.elasticsearch.test.ESTestCase;
|
||||
|
||||
import static org.hamcrest.Matchers.equalTo;
|
||||
import static org.hamcrest.Matchers.notNullValue;
|
||||
|
||||
public class GetDataFrameAnalyticsStatsActionRequestTests extends ESTestCase {
|
||||
|
||||
public void testRequest_GivenNoId() {
|
||||
GetDataFrameAnalyticsStatsAction.Request request = new GetDataFrameAnalyticsStatsAction.Request();
|
||||
assertThat(request.getId(), notNullValue());
|
||||
assertThat(request.getId(), equalTo("_all"));
|
||||
}
|
||||
|
||||
public void testSetId_GivenNull() {
|
||||
GetDataFrameAnalyticsStatsAction.Request request = new GetDataFrameAnalyticsStatsAction.Request();
|
||||
expectThrows(IllegalArgumentException.class, () -> request.setId(null));
|
||||
}
|
||||
|
||||
public void testSetId_GivenString() {
|
||||
GetDataFrameAnalyticsStatsAction.Request request = new GetDataFrameAnalyticsStatsAction.Request();
|
||||
|
||||
request.setId("foo");
|
||||
|
||||
assertThat(request.getId(), equalTo("foo"));
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue