Skip to content

Commit ea67731

Browse files
Register exception as serializable
1 parent eb27643 commit ea67731

File tree

9 files changed

+22
-6
lines changed

9 files changed

+22
-6
lines changed

server/src/main/java/org/elasticsearch/ElasticsearchException.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import org.apache.lucene.store.LockObtainFailedException;
1717
import org.elasticsearch.action.bulk.IndexDocFailureStoreStatus;
1818
import org.elasticsearch.action.support.replication.ReplicationOperation;
19+
import org.elasticsearch.cluster.RemoteComputeException;
1920
import org.elasticsearch.cluster.action.shard.ShardStateAction;
2021
import org.elasticsearch.common.io.stream.NotSerializableExceptionWrapper;
2122
import org.elasticsearch.common.io.stream.StreamInput;
@@ -1949,6 +1950,12 @@ private enum ElasticsearchExceptionHandle {
19491950
IndexDocFailureStoreStatus.ExceptionWithFailureStoreStatus::new,
19501951
183,
19511952
TransportVersions.V_8_16_0
1953+
),
1954+
REMOTE_COMPUTE_EXCEPTION(
1955+
RemoteComputeException.class,
1956+
RemoteComputeException::new,
1957+
184,
1958+
TransportVersions.REMOTE_COMPUTE_EXCEPTION
19521959
);
19531960

19541961
final Class<? extends ElasticsearchException> exceptionClass;

server/src/main/java/org/elasticsearch/TransportVersions.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,7 @@ static TransportVersion def(int id) {
186186
public static final TransportVersion INFERENCE_CONTEXT = def(9_028_0_00);
187187
public static final TransportVersion ML_INFERENCE_DEEPSEEK = def(9_029_00_0);
188188
public static final TransportVersion ESQL_FAILURE_FROM_REMOTE = def(9_030_00_0);
189+
public static final TransportVersion REMOTE_COMPUTE_EXCEPTION = def(9_031_0_00);
189190

190191
/*
191192
* STOP! READ THIS FIRST! No, really,
Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,14 @@
55
* 2.0.
66
*/
77

8-
package org.elasticsearch.xpack.esql;
8+
package org.elasticsearch.cluster;
99

1010
import org.elasticsearch.ElasticsearchException;
1111
import org.elasticsearch.ExceptionsHelper;
12+
import org.elasticsearch.common.io.stream.StreamInput;
1213
import org.elasticsearch.rest.RestStatus;
1314

15+
import java.io.IOException;
1416
import java.util.Objects;
1517

1618
/**
@@ -28,6 +30,10 @@ public RemoteComputeException(String clusterAlias, Throwable cause) {
2830
Objects.requireNonNull(cause);
2931
}
3032

33+
public RemoteComputeException(StreamInput in) throws IOException {
34+
super(in);
35+
}
36+
3137
@Override
3238
public RestStatus status() {
3339
// This is similar to what we do in SearchPhaseExecutionException.

server/src/test/java/org/elasticsearch/ExceptionSerializationTests.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import org.elasticsearch.action.search.ShardSearchFailure;
2222
import org.elasticsearch.action.support.replication.ReplicationOperation;
2323
import org.elasticsearch.client.internal.AbstractClientHeadersTestCase;
24+
import org.elasticsearch.cluster.RemoteComputeException;
2425
import org.elasticsearch.cluster.action.shard.ShardStateAction;
2526
import org.elasticsearch.cluster.block.ClusterBlockException;
2627
import org.elasticsearch.cluster.coordination.CoordinationStateRejectedException;
@@ -839,6 +840,7 @@ public void testIds() {
839840
ids.put(181, ResourceAlreadyUploadedException.class);
840841
ids.put(182, IngestPipelineException.class);
841842
ids.put(183, IndexDocFailureStoreStatus.ExceptionWithFailureStoreStatus.class);
843+
ids.put(184, RemoteComputeException.class);
842844

843845
Map<Class<? extends ElasticsearchException>, Integer> reverse = new HashMap<>();
844846
for (Map.Entry<Integer, Class<? extends ElasticsearchException>> entry : ids.entrySet()) {

x-pack/plugin/esql/src/internalClusterTest/java/org/elasticsearch/xpack/esql/action/CrossClusterCancellationIT.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import org.elasticsearch.action.index.IndexRequest;
1515
import org.elasticsearch.action.support.PlainActionFuture;
1616
import org.elasticsearch.action.support.WriteRequest;
17+
import org.elasticsearch.cluster.RemoteComputeException;
1718
import org.elasticsearch.common.settings.Setting;
1819
import org.elasticsearch.common.transport.TransportAddress;
1920
import org.elasticsearch.compute.operator.DriverTaskRunner;
@@ -26,7 +27,6 @@
2627
import org.elasticsearch.transport.TransportService;
2728
import org.elasticsearch.xcontent.XContentBuilder;
2829
import org.elasticsearch.xcontent.json.JsonXContent;
29-
import org.elasticsearch.xpack.esql.RemoteComputeException;
3030
import org.elasticsearch.xpack.esql.plugin.ComputeService;
3131
import org.junit.After;
3232
import org.junit.Before;

x-pack/plugin/esql/src/internalClusterTest/java/org/elasticsearch/xpack/esql/action/CrossClusterQueryIT.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import org.elasticsearch.action.admin.cluster.health.ClusterHealthResponse;
1313
import org.elasticsearch.action.admin.indices.alias.IndicesAliasesResponse;
1414
import org.elasticsearch.client.internal.Client;
15+
import org.elasticsearch.cluster.RemoteComputeException;
1516
import org.elasticsearch.cluster.metadata.IndexMetadata;
1617
import org.elasticsearch.common.Priority;
1718
import org.elasticsearch.common.Strings;
@@ -29,7 +30,6 @@
2930
import org.elasticsearch.transport.TransportService;
3031
import org.elasticsearch.xcontent.XContentBuilder;
3132
import org.elasticsearch.xcontent.json.JsonXContent;
32-
import org.elasticsearch.xpack.esql.RemoteComputeException;
3333
import org.elasticsearch.xpack.esql.VerificationException;
3434
import org.elasticsearch.xpack.esql.plugin.QueryPragmas;
3535

x-pack/plugin/esql/src/internalClusterTest/java/org/elasticsearch/xpack/esql/action/CrossClusterQueryWithPartialResultsIT.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import org.elasticsearch.ResourceNotFoundException;
1212
import org.elasticsearch.action.search.ShardSearchFailure;
1313
import org.elasticsearch.client.internal.Client;
14+
import org.elasticsearch.cluster.RemoteComputeException;
1415
import org.elasticsearch.common.breaker.CircuitBreaker;
1516
import org.elasticsearch.common.breaker.CircuitBreakingException;
1617
import org.elasticsearch.common.settings.Settings;
@@ -25,7 +26,6 @@
2526
import org.elasticsearch.xcontent.XContentBuilder;
2627
import org.elasticsearch.xcontent.json.JsonXContent;
2728
import org.elasticsearch.xpack.esql.EsqlTestUtils;
28-
import org.elasticsearch.xpack.esql.RemoteComputeException;
2929
import org.elasticsearch.xpack.esql.plugin.ComputeService;
3030

3131
import java.io.IOException;

x-pack/plugin/esql/src/internalClusterTest/java/org/elasticsearch/xpack/esql/action/EsqlRemoteErrorWrapIT.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@
77

88
package org.elasticsearch.xpack.esql.action;
99

10+
import org.elasticsearch.cluster.RemoteComputeException;
1011
import org.elasticsearch.compute.operator.exchange.ExchangeService;
1112
import org.elasticsearch.test.transport.MockTransportService;
1213
import org.elasticsearch.transport.TransportService;
13-
import org.elasticsearch.xpack.esql.RemoteComputeException;
1414

1515
import static org.hamcrest.Matchers.is;
1616

x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/plugin/ComputeService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040
import org.elasticsearch.transport.RemoteClusterAware;
4141
import org.elasticsearch.transport.TransportRequest;
4242
import org.elasticsearch.transport.TransportService;
43-
import org.elasticsearch.xpack.esql.RemoteComputeException;
43+
import org.elasticsearch.cluster.RemoteComputeException;
4444
import org.elasticsearch.xpack.esql.action.EsqlExecutionInfo;
4545
import org.elasticsearch.xpack.esql.action.EsqlQueryAction;
4646
import org.elasticsearch.xpack.esql.core.expression.Attribute;

0 commit comments

Comments
 (0)