From dc385ace2cdd7071fc19835471697b415d35bfa4 Mon Sep 17 00:00:00 2001 From: Przemyslaw Witek Date: Mon, 10 Jun 2019 10:14:37 +0200 Subject: [PATCH] Copy TimingStats to prevent it being modified outside of JobStats builder --- .../ml/job/process/autodetect/params/AutodetectParams.java | 2 +- .../job/process/autodetect/params/AutodetectParamsTests.java | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/x-pack/plugin/ml/src/main/java/org/elasticsearch/xpack/ml/job/process/autodetect/params/AutodetectParams.java b/x-pack/plugin/ml/src/main/java/org/elasticsearch/xpack/ml/job/process/autodetect/params/AutodetectParams.java index 3f9348ca436c9..7c56d9db1d08c 100644 --- a/x-pack/plugin/ml/src/main/java/org/elasticsearch/xpack/ml/job/process/autodetect/params/AutodetectParams.java +++ b/x-pack/plugin/ml/src/main/java/org/elasticsearch/xpack/ml/job/process/autodetect/params/AutodetectParams.java @@ -136,7 +136,7 @@ public Builder setModelSizeStats(ModelSizeStats modelSizeStats) { } public Builder setTimingStats(TimingStats timingStats) { - this.timingStats = timingStats; + this.timingStats = new TimingStats(timingStats); return this; } diff --git a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/job/process/autodetect/params/AutodetectParamsTests.java b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/job/process/autodetect/params/AutodetectParamsTests.java index 37f39f25f8101..6fbc051c17107 100644 --- a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/job/process/autodetect/params/AutodetectParamsTests.java +++ b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/job/process/autodetect/params/AutodetectParamsTests.java @@ -18,6 +18,10 @@ public void testBuilder_WithTimingStats() { TimingStats timingStats = new TimingStats(JOB_ID, 7, 1.0, 1000.0, 666.0); AutodetectParams params = new AutodetectParams.Builder(JOB_ID).setTimingStats(timingStats).build(); assertThat(params.timingStats(), equalTo(timingStats)); + + timingStats.updateStats(2000.0); + assertThat(timingStats, equalTo(new TimingStats(JOB_ID, 8, 1.0, 2000.0, 832.75))); + assertThat(params.timingStats(), equalTo(new TimingStats(JOB_ID, 7, 1.0, 1000.0, 666.0))); } public void testBuilder_WithoutTimingStats() {