@@ -346,33 +346,31 @@ public Set<String> getUpdateFields() {
346
346
*/
347
347
public Job mergeWithJob (Job source , ByteSizeValue maxModelMemoryLimit ) {
348
348
Job .Builder builder = new Job .Builder (source );
349
+ AnalysisConfig currentAnalysisConfig = source .getAnalysisConfig ();
350
+ AnalysisConfig .Builder newAnalysisConfig = new AnalysisConfig .Builder (currentAnalysisConfig );
349
351
if (groups != null ) {
350
352
builder .setGroups (groups );
351
353
}
352
354
if (description != null ) {
353
355
builder .setDescription (description );
354
356
}
355
357
if (detectorUpdates != null && detectorUpdates .isEmpty () == false ) {
356
- AnalysisConfig ac = source .getAnalysisConfig ();
357
- int numDetectors = ac .getDetectors ().size ();
358
+ int numDetectors = currentAnalysisConfig .getDetectors ().size ();
358
359
for (DetectorUpdate dd : detectorUpdates ) {
359
360
if (dd .getDetectorIndex () >= numDetectors ) {
360
361
throw ExceptionsHelper .badRequestException ("Supplied detector_index [{}] is >= the number of detectors [{}]" ,
361
362
dd .getDetectorIndex (), numDetectors );
362
363
}
363
364
364
- Detector .Builder detectorbuilder = new Detector .Builder (ac .getDetectors ().get (dd .getDetectorIndex ()));
365
+ Detector .Builder detectorbuilder = new Detector .Builder (currentAnalysisConfig .getDetectors ().get (dd .getDetectorIndex ()));
365
366
if (dd .getDescription () != null ) {
366
367
detectorbuilder .setDetectorDescription (dd .getDescription ());
367
368
}
368
369
if (dd .getRules () != null ) {
369
370
detectorbuilder .setRules (dd .getRules ());
370
371
}
371
- ac . getDetectors (). set (dd .getDetectorIndex (), detectorbuilder .build ());
372
+ newAnalysisConfig . setDetector (dd .getDetectorIndex (), detectorbuilder .build ());
372
373
}
373
-
374
- AnalysisConfig .Builder acBuilder = new AnalysisConfig .Builder (ac );
375
- builder .setAnalysisConfig (acBuilder );
376
374
}
377
375
if (modelPlotConfig != null ) {
378
376
builder .setModelPlotConfig (modelPlotConfig );
@@ -395,9 +393,7 @@ public Job mergeWithJob(Job source, ByteSizeValue maxModelMemoryLimit) {
395
393
builder .setResultsRetentionDays (resultsRetentionDays );
396
394
}
397
395
if (categorizationFilters != null ) {
398
- AnalysisConfig .Builder analysisConfigBuilder = new AnalysisConfig .Builder (source .getAnalysisConfig ());
399
- analysisConfigBuilder .setCategorizationFilters (categorizationFilters );
400
- builder .setAnalysisConfig (analysisConfigBuilder );
396
+ newAnalysisConfig .setCategorizationFilters (categorizationFilters );
401
397
}
402
398
if (customSettings != null ) {
403
399
builder .setCustomSettings (customSettings );
@@ -416,6 +412,7 @@ public Job mergeWithJob(Job source, ByteSizeValue maxModelMemoryLimit) {
416
412
if (jobVersion != null ) {
417
413
builder .setJobVersion (jobVersion );
418
414
}
415
+ builder .setAnalysisConfig (newAnalysisConfig );
419
416
return builder .build ();
420
417
}
421
418
0 commit comments