Skip to content

Commit 2ee55a5

Browse files
authored
[ML] Use String rep of Version in map for serialisation (#37416)
1 parent 033e67f commit 2ee55a5

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

x-pack/plugin/ml/src/main/java/org/elasticsearch/xpack/ml/MlConfigMigrator.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -402,7 +402,8 @@ private void createConfigIndex(ActionListener<Boolean> listener) {
402402
public static Job updateJobForMigration(Job job) {
403403
Job.Builder builder = new Job.Builder(job);
404404
Map<String, Object> custom = job.getCustomSettings() == null ? new HashMap<>() : new HashMap<>(job.getCustomSettings());
405-
custom.put(MIGRATED_FROM_VERSION, job.getJobVersion());
405+
String version = job.getJobVersion() != null ? job.getJobVersion().toString() : null;
406+
custom.put(MIGRATED_FROM_VERSION, version);
406407
builder.setCustomSettings(custom);
407408
// Increase the model memory limit for 6.1 - 6.3 jobs
408409
Version jobVersion = job.getJobVersion();

x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/MlConfigMigratorTests.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import org.elasticsearch.cluster.ClusterName;
1212
import org.elasticsearch.cluster.ClusterState;
1313
import org.elasticsearch.cluster.metadata.MetaData;
14+
import org.elasticsearch.common.io.stream.NamedWriteableRegistry;
1415
import org.elasticsearch.persistent.PersistentTasksCustomMetaData;
1516
import org.elasticsearch.test.ESTestCase;
1617
import org.elasticsearch.xpack.core.ml.MlMetadata;
@@ -21,9 +22,11 @@
2122
import org.elasticsearch.xpack.core.ml.job.config.Job;
2223
import org.elasticsearch.xpack.core.ml.job.config.JobTests;
2324

25+
import java.io.IOException;
2426
import java.util.ArrayList;
2527
import java.util.Arrays;
2628
import java.util.Collections;
29+
import java.util.Date;
2730
import java.util.HashMap;
2831
import java.util.List;
2932
import java.util.Map;
@@ -125,7 +128,7 @@ public void testUpdateJobForMigration() {
125128
Job migratedJob = MlConfigMigrator.updateJobForMigration(oldJob.build());
126129
assertEquals(Version.CURRENT, migratedJob.getJobVersion());
127130
assertTrue(migratedJob.getCustomSettings().containsKey(MlConfigMigrator.MIGRATED_FROM_VERSION));
128-
assertEquals(oldVersion, migratedJob.getCustomSettings().get(MlConfigMigrator.MIGRATED_FROM_VERSION));
131+
assertEquals(oldVersion.toString(), migratedJob.getCustomSettings().get(MlConfigMigrator.MIGRATED_FROM_VERSION));
129132
}
130133

131134
public void testUpdateJobForMigration_GivenV54Job() {
@@ -138,6 +141,12 @@ public void testUpdateJobForMigration_GivenV54Job() {
138141
assertTrue(migratedJob.getCustomSettings().containsKey(MlConfigMigrator.MIGRATED_FROM_VERSION));
139142
}
140143

144+
public void testSerialisationOfUpdatedJob() throws IOException {
145+
Job migratedJob = MlConfigMigrator.updateJobForMigration(JobTests.buildJobBuilder("pre-migration").build(new Date()));
146+
Job copy = copyWriteable(migratedJob, new NamedWriteableRegistry(Collections.emptyList()), Job::new, Version.CURRENT);
147+
assertEquals(migratedJob, copy);
148+
}
149+
141150
public void testFilterFailedJobConfigWrites() {
142151
List<Job> jobs = new ArrayList<>();
143152
jobs.add(JobTests.buildJobBuilder("foo").build());

0 commit comments

Comments
 (0)