Skip to content

Commit 1eec6a0

Browse files
itsnotvbleskes
authored andcommitted
CCE when re-throwing "shard not available" exception in TransportShardMultiGetAction (#32185)
ClassCastException can be thrown by callers of TransportActions.isShardNotAvailableException(e) as e is not always an instance of ElasticSearchException fixes #32173
1 parent d49f2c4 commit 1eec6a0

File tree

2 files changed

+7
-9
lines changed

2 files changed

+7
-9
lines changed

server/src/main/java/org/elasticsearch/action/get/TransportShardMultiGetAction.java

+2-3
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
package org.elasticsearch.action.get;
2121

2222
import org.apache.logging.log4j.message.ParameterizedMessage;
23-
import org.elasticsearch.ElasticsearchException;
2423
import org.elasticsearch.action.support.ActionFilters;
2524
import org.elasticsearch.action.support.TransportActions;
2625
import org.elasticsearch.action.support.single.shard.TransportSingleShardAction;
@@ -90,9 +89,9 @@ protected MultiGetShardResponse shardOperation(MultiGetShardRequest request, Sha
9089
GetResult getResult = indexShard.getService().get(item.type(), item.id(), item.storedFields(), request.realtime(), item.version(),
9190
item.versionType(), item.fetchSourceContext());
9291
response.add(request.locations.get(i), new GetResponse(getResult));
93-
} catch (Exception e) {
92+
} catch (RuntimeException e) {
9493
if (TransportActions.isShardNotAvailableException(e)) {
95-
throw (ElasticsearchException) e;
94+
throw e;
9695
} else {
9796
logger.debug(() -> new ParameterizedMessage("{} failed to execute multi_get for [{}]/[{}]", shardId,
9897
item.type(), item.id()), e);

server/src/main/java/org/elasticsearch/action/termvectors/TransportShardMultiTermsVectorAction.java

+5-6
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
package org.elasticsearch.action.termvectors;
2121

2222
import org.apache.logging.log4j.message.ParameterizedMessage;
23-
import org.elasticsearch.ElasticsearchException;
2423
import org.elasticsearch.action.support.ActionFilters;
2524
import org.elasticsearch.action.support.TransportActions;
2625
import org.elasticsearch.action.support.single.shard.TransportSingleShardAction;
@@ -84,13 +83,13 @@ protected MultiTermVectorsShardResponse shardOperation(MultiTermVectorsShardRequ
8483
try {
8584
TermVectorsResponse termVectorsResponse = TermVectorsService.getTermVectors(indexShard, termVectorsRequest);
8685
response.add(request.locations.get(i), termVectorsResponse);
87-
} catch (Exception t) {
88-
if (TransportActions.isShardNotAvailableException(t)) {
89-
throw (ElasticsearchException) t;
86+
} catch (RuntimeException e) {
87+
if (TransportActions.isShardNotAvailableException(e)) {
88+
throw e;
9089
} else {
91-
logger.debug(() -> new ParameterizedMessage("{} failed to execute multi term vectors for [{}]/[{}]", shardId, termVectorsRequest.type(), termVectorsRequest.id()), t);
90+
logger.debug(() -> new ParameterizedMessage("{} failed to execute multi term vectors for [{}]/[{}]", shardId, termVectorsRequest.type(), termVectorsRequest.id()), e);
9291
response.add(request.locations.get(i),
93-
new MultiTermVectorsResponse.Failure(request.index(), termVectorsRequest.type(), termVectorsRequest.id(), t));
92+
new MultiTermVectorsResponse.Failure(request.index(), termVectorsRequest.type(), termVectorsRequest.id(), e));
9493
}
9594
}
9695
}

0 commit comments

Comments
 (0)