|
6 | 6 | package org.elasticsearch.xpack.ml.action;
|
7 | 7 |
|
8 | 8 | import org.elasticsearch.ElasticsearchException;
|
| 9 | +import org.elasticsearch.ResourceNotFoundException; |
9 | 10 | import org.elasticsearch.action.ActionListener;
|
10 | 11 | import org.elasticsearch.action.ActionListenerResponseHandler;
|
11 | 12 | import org.elasticsearch.action.FailedNodeException;
|
|
16 | 17 | import org.elasticsearch.cluster.ClusterState;
|
17 | 18 | import org.elasticsearch.cluster.node.DiscoveryNodes;
|
18 | 19 | import org.elasticsearch.cluster.service.ClusterService;
|
| 20 | +import org.elasticsearch.common.Strings; |
19 | 21 | import org.elasticsearch.common.inject.Inject;
|
20 | 22 | import org.elasticsearch.common.util.concurrent.AbstractRunnable;
|
21 | 23 | import org.elasticsearch.common.util.concurrent.AtomicArray;
|
@@ -272,7 +274,12 @@ protected void taskOperation(CloseJobAction.Request request, TransportOpenJobAct
|
272 | 274 | threadPool.executor(MachineLearning.UTILITY_THREAD_POOL_NAME).execute(new AbstractRunnable() {
|
273 | 275 | @Override
|
274 | 276 | public void onFailure(Exception e) {
|
275 |
| - listener.onFailure(e); |
| 277 | + if (e instanceof ResourceNotFoundException && Strings.isAllOrWildcard(new String[]{request.getJobId()})) { |
| 278 | + jobTask.closeJob("close job (api)"); |
| 279 | + listener.onResponse(new CloseJobAction.Response(true)); |
| 280 | + } else { |
| 281 | + listener.onFailure(e); |
| 282 | + } |
276 | 283 | }
|
277 | 284 |
|
278 | 285 | @Override
|
@@ -332,7 +339,10 @@ public void onResponse(PersistentTasksCustomMetaData.PersistentTask<?> task) {
|
332 | 339 | @Override
|
333 | 340 | public void onFailure(Exception e) {
|
334 | 341 | final int slot = counter.incrementAndGet();
|
335 |
| - failures.set(slot - 1, e); |
| 342 | + if ((e instanceof ResourceNotFoundException && |
| 343 | + Strings.isAllOrWildcard(new String[]{request.getJobId()})) == false) { |
| 344 | + failures.set(slot - 1, e); |
| 345 | + } |
336 | 346 | if (slot == numberOfJobs) {
|
337 | 347 | sendResponseOrFailure(request.getJobId(), listener, failures);
|
338 | 348 | }
|
|
0 commit comments