Skip to content

Commit 891a37a

Browse files
[ML] Use LinkedHashMap to preserve order in job and datafeed fields (#36389)
1 parent 9626e70 commit 891a37a

File tree

3 files changed

+9
-9
lines changed
  • client/rest-high-level/src/main/java/org/elasticsearch/client/ml/job/config
  • x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/ml

3 files changed

+9
-9
lines changed

client/rest-high-level/src/main/java/org/elasticsearch/client/ml/job/config/Job.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
import java.util.ArrayList;
3232
import java.util.Collections;
3333
import java.util.Date;
34-
import java.util.HashMap;
34+
import java.util.LinkedHashMap;
3535
import java.util.List;
3636
import java.util.Map;
3737
import java.util.Objects;
@@ -94,7 +94,7 @@ public class Job implements ToXContentObject {
9494
TimeValue.parseTimeValue(val, BACKGROUND_PERSIST_INTERVAL.getPreferredName())), BACKGROUND_PERSIST_INTERVAL);
9595
PARSER.declareLong(Builder::setResultsRetentionDays, RESULTS_RETENTION_DAYS);
9696
PARSER.declareLong(Builder::setModelSnapshotRetentionDays, MODEL_SNAPSHOT_RETENTION_DAYS);
97-
PARSER.declareField(Builder::setCustomSettings, (p, c) -> p.map(), CUSTOM_SETTINGS, ValueType.OBJECT);
97+
PARSER.declareField(Builder::setCustomSettings, (p, c) -> p.mapOrdered(), CUSTOM_SETTINGS, ValueType.OBJECT);
9898
PARSER.declareStringOrNull(Builder::setModelSnapshotId, MODEL_SNAPSHOT_ID);
9999
PARSER.declareString(Builder::setResultsIndexName, RESULTS_INDEX_NAME);
100100
PARSER.declareBoolean(Builder::setDeleting, DELETING);
@@ -441,7 +441,7 @@ public Builder(Job job) {
441441
this.backgroundPersistInterval = job.getBackgroundPersistInterval();
442442
this.modelSnapshotRetentionDays = job.getModelSnapshotRetentionDays();
443443
this.resultsRetentionDays = job.getResultsRetentionDays();
444-
this.customSettings = job.getCustomSettings() == null ? null : new HashMap<>(job.getCustomSettings());
444+
this.customSettings = job.getCustomSettings() == null ? null : new LinkedHashMap<>(job.getCustomSettings());
445445
this.modelSnapshotId = job.getModelSnapshotId();
446446
this.resultsIndexName = job.getResultsIndexNameNoPrefix();
447447
this.deleting = job.getDeleting();

x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/ml/datafeed/DatafeedConfig.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -165,9 +165,9 @@ private static ObjectParser<Builder, Void> createParser(boolean ignoreUnknownFie
165165
parser.declareString((builder, val) ->
166166
builder.setFrequency(TimeValue.parseTimeValue(val, FREQUENCY.getPreferredName())), FREQUENCY);
167167
if (ignoreUnknownFields) {
168-
parser.declareObject(Builder::setQuery, (p, c) -> p.map(), QUERY);
169-
parser.declareObject(Builder::setAggregations, (p, c) -> p.map(), AGGREGATIONS);
170-
parser.declareObject(Builder::setAggregations, (p, c) -> p.map(), AGGS);
168+
parser.declareObject(Builder::setQuery, (p, c) -> p.mapOrdered(), QUERY);
169+
parser.declareObject(Builder::setAggregations, (p, c) -> p.mapOrdered(), AGGREGATIONS);
170+
parser.declareObject(Builder::setAggregations, (p, c) -> p.mapOrdered(), AGGS);
171171
} else {
172172
parser.declareObject(Builder::setParsedQuery, (p, c) -> AbstractQueryBuilder.parseInnerQueryBuilder(p), QUERY);
173173
parser.declareObject(Builder::setParsedAggregations, (p, c) -> AggregatorFactories.parseAggregators(p), AGGREGATIONS);

x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/ml/job/config/Job.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@
3232
import java.util.Collection;
3333
import java.util.Collections;
3434
import java.util.Date;
35-
import java.util.HashMap;
3635
import java.util.HashSet;
36+
import java.util.LinkedHashMap;
3737
import java.util.List;
3838
import java.util.Map;
3939
import java.util.Objects;
@@ -116,7 +116,7 @@ private static ObjectParser<Builder, Void> createParser(boolean ignoreUnknownFie
116116
TimeValue.parseTimeValue(val, BACKGROUND_PERSIST_INTERVAL.getPreferredName())), BACKGROUND_PERSIST_INTERVAL);
117117
parser.declareLong(Builder::setResultsRetentionDays, RESULTS_RETENTION_DAYS);
118118
parser.declareLong(Builder::setModelSnapshotRetentionDays, MODEL_SNAPSHOT_RETENTION_DAYS);
119-
parser.declareField(Builder::setCustomSettings, (p, c) -> p.map(), CUSTOM_SETTINGS, ValueType.OBJECT);
119+
parser.declareField(Builder::setCustomSettings, (p, c) -> p.mapOrdered(), CUSTOM_SETTINGS, ValueType.OBJECT);
120120
parser.declareStringOrNull(Builder::setModelSnapshotId, MODEL_SNAPSHOT_ID);
121121
parser.declareStringOrNull(Builder::setModelSnapshotMinVersion, MODEL_SNAPSHOT_MIN_VERSION);
122122
parser.declareString(Builder::setResultsIndexName, RESULTS_INDEX_NAME);
@@ -674,7 +674,7 @@ public Builder(Job job) {
674674
this.backgroundPersistInterval = job.getBackgroundPersistInterval();
675675
this.modelSnapshotRetentionDays = job.getModelSnapshotRetentionDays();
676676
this.resultsRetentionDays = job.getResultsRetentionDays();
677-
this.customSettings = job.getCustomSettings() == null ? null : new HashMap<>(job.getCustomSettings());
677+
this.customSettings = job.getCustomSettings() == null ? null : new LinkedHashMap<>(job.getCustomSettings());
678678
this.modelSnapshotId = job.getModelSnapshotId();
679679
this.modelSnapshotMinVersion = job.getModelSnapshotMinVersion();
680680
this.resultsIndexName = job.getResultsIndexNameNoPrefix();

0 commit comments

Comments
 (0)