Add BWC layer for Exceptions (#21694)
Today it's not possible to add exceptions to the serialization layer without breaking BWC. This commit adds the ability to specify the Version an exception was added that allows to fall back not NotSerializableExceptionWrapper if the exception is not present in the streams version. Relates to #21656
This commit is contained in:
parent
e7b9e65fc3
commit
71a21b3208
|
@ -49,6 +49,8 @@ import static org.elasticsearch.cluster.metadata.IndexMetaData.INDEX_UUID_NA_VAL
|
||||||
*/
|
*/
|
||||||
public class ElasticsearchException extends RuntimeException implements ToXContent, Writeable {
|
public class ElasticsearchException extends RuntimeException implements ToXContent, Writeable {
|
||||||
|
|
||||||
|
public static final Version V_5_1_0_UNRELEASED = Version.fromId(5010099);
|
||||||
|
public static final Version UNKNOWN_VERSION_ADDED = Version.fromId(0);
|
||||||
public static final String REST_EXCEPTION_SKIP_CAUSE = "rest.exception.cause.skip";
|
public static final String REST_EXCEPTION_SKIP_CAUSE = "rest.exception.cause.skip";
|
||||||
public static final String REST_EXCEPTION_SKIP_STACK_TRACE = "rest.exception.stacktrace.skip";
|
public static final String REST_EXCEPTION_SKIP_STACK_TRACE = "rest.exception.stacktrace.skip";
|
||||||
public static final boolean REST_EXCEPTION_SKIP_STACK_TRACE_DEFAULT = true;
|
public static final boolean REST_EXCEPTION_SKIP_STACK_TRACE_DEFAULT = true;
|
||||||
|
@ -210,8 +212,12 @@ public class ElasticsearchException extends RuntimeException implements ToXConte
|
||||||
/**
|
/**
|
||||||
* Returns <code>true</code> iff the given class is a registered for an exception to be read.
|
* Returns <code>true</code> iff the given class is a registered for an exception to be read.
|
||||||
*/
|
*/
|
||||||
public static boolean isRegistered(Class<? extends Throwable> exception) {
|
public static boolean isRegistered(Class<? extends Throwable> exception, Version version) {
|
||||||
return CLASS_TO_ELASTICSEARCH_EXCEPTION_HANDLE.containsKey(exception);
|
ElasticsearchExceptionHandle elasticsearchExceptionHandle = CLASS_TO_ELASTICSEARCH_EXCEPTION_HANDLE.get(exception);
|
||||||
|
if (elasticsearchExceptionHandle != null) {
|
||||||
|
return version.onOrAfter(elasticsearchExceptionHandle.versionAdded);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
static Set<Class<? extends ElasticsearchException>> getRegisteredKeys() { // for testing
|
static Set<Class<? extends ElasticsearchException>> getRegisteredKeys() { // for testing
|
||||||
|
@ -432,279 +438,294 @@ public class ElasticsearchException extends RuntimeException implements ToXConte
|
||||||
*/
|
*/
|
||||||
enum ElasticsearchExceptionHandle {
|
enum ElasticsearchExceptionHandle {
|
||||||
INDEX_SHARD_SNAPSHOT_FAILED_EXCEPTION(org.elasticsearch.index.snapshots.IndexShardSnapshotFailedException.class,
|
INDEX_SHARD_SNAPSHOT_FAILED_EXCEPTION(org.elasticsearch.index.snapshots.IndexShardSnapshotFailedException.class,
|
||||||
org.elasticsearch.index.snapshots.IndexShardSnapshotFailedException::new, 0),
|
org.elasticsearch.index.snapshots.IndexShardSnapshotFailedException::new, 0, UNKNOWN_VERSION_ADDED),
|
||||||
DFS_PHASE_EXECUTION_EXCEPTION(org.elasticsearch.search.dfs.DfsPhaseExecutionException.class,
|
DFS_PHASE_EXECUTION_EXCEPTION(org.elasticsearch.search.dfs.DfsPhaseExecutionException.class,
|
||||||
org.elasticsearch.search.dfs.DfsPhaseExecutionException::new, 1),
|
org.elasticsearch.search.dfs.DfsPhaseExecutionException::new, 1, UNKNOWN_VERSION_ADDED),
|
||||||
EXECUTION_CANCELLED_EXCEPTION(org.elasticsearch.common.util.CancellableThreads.ExecutionCancelledException.class,
|
EXECUTION_CANCELLED_EXCEPTION(org.elasticsearch.common.util.CancellableThreads.ExecutionCancelledException.class,
|
||||||
org.elasticsearch.common.util.CancellableThreads.ExecutionCancelledException::new, 2),
|
org.elasticsearch.common.util.CancellableThreads.ExecutionCancelledException::new, 2, UNKNOWN_VERSION_ADDED),
|
||||||
MASTER_NOT_DISCOVERED_EXCEPTION(org.elasticsearch.discovery.MasterNotDiscoveredException.class,
|
MASTER_NOT_DISCOVERED_EXCEPTION(org.elasticsearch.discovery.MasterNotDiscoveredException.class,
|
||||||
org.elasticsearch.discovery.MasterNotDiscoveredException::new, 3),
|
org.elasticsearch.discovery.MasterNotDiscoveredException::new, 3, UNKNOWN_VERSION_ADDED),
|
||||||
ELASTICSEARCH_SECURITY_EXCEPTION(org.elasticsearch.ElasticsearchSecurityException.class,
|
ELASTICSEARCH_SECURITY_EXCEPTION(org.elasticsearch.ElasticsearchSecurityException.class,
|
||||||
org.elasticsearch.ElasticsearchSecurityException::new, 4),
|
org.elasticsearch.ElasticsearchSecurityException::new, 4, UNKNOWN_VERSION_ADDED),
|
||||||
INDEX_SHARD_RESTORE_EXCEPTION(org.elasticsearch.index.snapshots.IndexShardRestoreException.class,
|
INDEX_SHARD_RESTORE_EXCEPTION(org.elasticsearch.index.snapshots.IndexShardRestoreException.class,
|
||||||
org.elasticsearch.index.snapshots.IndexShardRestoreException::new, 5),
|
org.elasticsearch.index.snapshots.IndexShardRestoreException::new, 5, UNKNOWN_VERSION_ADDED),
|
||||||
INDEX_CLOSED_EXCEPTION(org.elasticsearch.indices.IndexClosedException.class,
|
INDEX_CLOSED_EXCEPTION(org.elasticsearch.indices.IndexClosedException.class,
|
||||||
org.elasticsearch.indices.IndexClosedException::new, 6),
|
org.elasticsearch.indices.IndexClosedException::new, 6, UNKNOWN_VERSION_ADDED),
|
||||||
BIND_HTTP_EXCEPTION(org.elasticsearch.http.BindHttpException.class,
|
BIND_HTTP_EXCEPTION(org.elasticsearch.http.BindHttpException.class,
|
||||||
org.elasticsearch.http.BindHttpException::new, 7),
|
org.elasticsearch.http.BindHttpException::new, 7, UNKNOWN_VERSION_ADDED),
|
||||||
REDUCE_SEARCH_PHASE_EXCEPTION(org.elasticsearch.action.search.ReduceSearchPhaseException.class,
|
REDUCE_SEARCH_PHASE_EXCEPTION(org.elasticsearch.action.search.ReduceSearchPhaseException.class,
|
||||||
org.elasticsearch.action.search.ReduceSearchPhaseException::new, 8),
|
org.elasticsearch.action.search.ReduceSearchPhaseException::new, 8, UNKNOWN_VERSION_ADDED),
|
||||||
NODE_CLOSED_EXCEPTION(org.elasticsearch.node.NodeClosedException.class,
|
NODE_CLOSED_EXCEPTION(org.elasticsearch.node.NodeClosedException.class,
|
||||||
org.elasticsearch.node.NodeClosedException::new, 9),
|
org.elasticsearch.node.NodeClosedException::new, 9, UNKNOWN_VERSION_ADDED),
|
||||||
SNAPSHOT_FAILED_ENGINE_EXCEPTION(org.elasticsearch.index.engine.SnapshotFailedEngineException.class,
|
SNAPSHOT_FAILED_ENGINE_EXCEPTION(org.elasticsearch.index.engine.SnapshotFailedEngineException.class,
|
||||||
org.elasticsearch.index.engine.SnapshotFailedEngineException::new, 10),
|
org.elasticsearch.index.engine.SnapshotFailedEngineException::new, 10, UNKNOWN_VERSION_ADDED),
|
||||||
SHARD_NOT_FOUND_EXCEPTION(org.elasticsearch.index.shard.ShardNotFoundException.class,
|
SHARD_NOT_FOUND_EXCEPTION(org.elasticsearch.index.shard.ShardNotFoundException.class,
|
||||||
org.elasticsearch.index.shard.ShardNotFoundException::new, 11),
|
org.elasticsearch.index.shard.ShardNotFoundException::new, 11, UNKNOWN_VERSION_ADDED),
|
||||||
CONNECT_TRANSPORT_EXCEPTION(org.elasticsearch.transport.ConnectTransportException.class,
|
CONNECT_TRANSPORT_EXCEPTION(org.elasticsearch.transport.ConnectTransportException.class,
|
||||||
org.elasticsearch.transport.ConnectTransportException::new, 12),
|
org.elasticsearch.transport.ConnectTransportException::new, 12, UNKNOWN_VERSION_ADDED),
|
||||||
NOT_SERIALIZABLE_TRANSPORT_EXCEPTION(org.elasticsearch.transport.NotSerializableTransportException.class,
|
NOT_SERIALIZABLE_TRANSPORT_EXCEPTION(org.elasticsearch.transport.NotSerializableTransportException.class,
|
||||||
org.elasticsearch.transport.NotSerializableTransportException::new, 13),
|
org.elasticsearch.transport.NotSerializableTransportException::new, 13, UNKNOWN_VERSION_ADDED),
|
||||||
RESPONSE_HANDLER_FAILURE_TRANSPORT_EXCEPTION(org.elasticsearch.transport.ResponseHandlerFailureTransportException.class,
|
RESPONSE_HANDLER_FAILURE_TRANSPORT_EXCEPTION(org.elasticsearch.transport.ResponseHandlerFailureTransportException.class,
|
||||||
org.elasticsearch.transport.ResponseHandlerFailureTransportException::new, 14),
|
org.elasticsearch.transport.ResponseHandlerFailureTransportException::new, 14, UNKNOWN_VERSION_ADDED),
|
||||||
INDEX_CREATION_EXCEPTION(org.elasticsearch.indices.IndexCreationException.class,
|
INDEX_CREATION_EXCEPTION(org.elasticsearch.indices.IndexCreationException.class,
|
||||||
org.elasticsearch.indices.IndexCreationException::new, 15),
|
org.elasticsearch.indices.IndexCreationException::new, 15, UNKNOWN_VERSION_ADDED),
|
||||||
INDEX_NOT_FOUND_EXCEPTION(org.elasticsearch.index.IndexNotFoundException.class,
|
INDEX_NOT_FOUND_EXCEPTION(org.elasticsearch.index.IndexNotFoundException.class,
|
||||||
org.elasticsearch.index.IndexNotFoundException::new, 16),
|
org.elasticsearch.index.IndexNotFoundException::new, 16, UNKNOWN_VERSION_ADDED),
|
||||||
ILLEGAL_SHARD_ROUTING_STATE_EXCEPTION(org.elasticsearch.cluster.routing.IllegalShardRoutingStateException.class,
|
ILLEGAL_SHARD_ROUTING_STATE_EXCEPTION(org.elasticsearch.cluster.routing.IllegalShardRoutingStateException.class,
|
||||||
org.elasticsearch.cluster.routing.IllegalShardRoutingStateException::new, 17),
|
org.elasticsearch.cluster.routing.IllegalShardRoutingStateException::new, 17, UNKNOWN_VERSION_ADDED),
|
||||||
BROADCAST_SHARD_OPERATION_FAILED_EXCEPTION(org.elasticsearch.action.support.broadcast.BroadcastShardOperationFailedException.class,
|
BROADCAST_SHARD_OPERATION_FAILED_EXCEPTION(org.elasticsearch.action.support.broadcast.BroadcastShardOperationFailedException.class,
|
||||||
org.elasticsearch.action.support.broadcast.BroadcastShardOperationFailedException::new, 18),
|
org.elasticsearch.action.support.broadcast.BroadcastShardOperationFailedException::new, 18, UNKNOWN_VERSION_ADDED),
|
||||||
RESOURCE_NOT_FOUND_EXCEPTION(org.elasticsearch.ResourceNotFoundException.class,
|
RESOURCE_NOT_FOUND_EXCEPTION(org.elasticsearch.ResourceNotFoundException.class,
|
||||||
org.elasticsearch.ResourceNotFoundException::new, 19),
|
org.elasticsearch.ResourceNotFoundException::new, 19, UNKNOWN_VERSION_ADDED),
|
||||||
ACTION_TRANSPORT_EXCEPTION(org.elasticsearch.transport.ActionTransportException.class,
|
ACTION_TRANSPORT_EXCEPTION(org.elasticsearch.transport.ActionTransportException.class,
|
||||||
org.elasticsearch.transport.ActionTransportException::new, 20),
|
org.elasticsearch.transport.ActionTransportException::new, 20, UNKNOWN_VERSION_ADDED),
|
||||||
ELASTICSEARCH_GENERATION_EXCEPTION(org.elasticsearch.ElasticsearchGenerationException.class,
|
ELASTICSEARCH_GENERATION_EXCEPTION(org.elasticsearch.ElasticsearchGenerationException.class,
|
||||||
org.elasticsearch.ElasticsearchGenerationException::new, 21),
|
org.elasticsearch.ElasticsearchGenerationException::new, 21, UNKNOWN_VERSION_ADDED),
|
||||||
// 22 was CreateFailedEngineException
|
// 22 was CreateFailedEngineException
|
||||||
INDEX_SHARD_STARTED_EXCEPTION(org.elasticsearch.index.shard.IndexShardStartedException.class,
|
INDEX_SHARD_STARTED_EXCEPTION(org.elasticsearch.index.shard.IndexShardStartedException.class,
|
||||||
org.elasticsearch.index.shard.IndexShardStartedException::new, 23),
|
org.elasticsearch.index.shard.IndexShardStartedException::new, 23, UNKNOWN_VERSION_ADDED),
|
||||||
SEARCH_CONTEXT_MISSING_EXCEPTION(org.elasticsearch.search.SearchContextMissingException.class,
|
SEARCH_CONTEXT_MISSING_EXCEPTION(org.elasticsearch.search.SearchContextMissingException.class,
|
||||||
org.elasticsearch.search.SearchContextMissingException::new, 24),
|
org.elasticsearch.search.SearchContextMissingException::new, 24, UNKNOWN_VERSION_ADDED),
|
||||||
GENERAL_SCRIPT_EXCEPTION(org.elasticsearch.script.GeneralScriptException.class,
|
GENERAL_SCRIPT_EXCEPTION(org.elasticsearch.script.GeneralScriptException.class,
|
||||||
org.elasticsearch.script.GeneralScriptException::new, 25),
|
org.elasticsearch.script.GeneralScriptException::new, 25, UNKNOWN_VERSION_ADDED),
|
||||||
BATCH_OPERATION_EXCEPTION(org.elasticsearch.index.shard.TranslogRecoveryPerformer.BatchOperationException.class,
|
BATCH_OPERATION_EXCEPTION(org.elasticsearch.index.shard.TranslogRecoveryPerformer.BatchOperationException.class,
|
||||||
org.elasticsearch.index.shard.TranslogRecoveryPerformer.BatchOperationException::new, 26),
|
org.elasticsearch.index.shard.TranslogRecoveryPerformer.BatchOperationException::new, 26, UNKNOWN_VERSION_ADDED),
|
||||||
SNAPSHOT_CREATION_EXCEPTION(org.elasticsearch.snapshots.SnapshotCreationException.class,
|
SNAPSHOT_CREATION_EXCEPTION(org.elasticsearch.snapshots.SnapshotCreationException.class,
|
||||||
org.elasticsearch.snapshots.SnapshotCreationException::new, 27),
|
org.elasticsearch.snapshots.SnapshotCreationException::new, 27, UNKNOWN_VERSION_ADDED),
|
||||||
DELETE_FAILED_ENGINE_EXCEPTION(org.elasticsearch.index.engine.DeleteFailedEngineException.class,
|
DELETE_FAILED_ENGINE_EXCEPTION(org.elasticsearch.index.engine.DeleteFailedEngineException.class, // deprecated in 6.0, remove in 7.0
|
||||||
org.elasticsearch.index.engine.DeleteFailedEngineException::new, 28),// deprecated in 6.0, remove in 7.0
|
org.elasticsearch.index.engine.DeleteFailedEngineException::new, 28, UNKNOWN_VERSION_ADDED),
|
||||||
DOCUMENT_MISSING_EXCEPTION(org.elasticsearch.index.engine.DocumentMissingException.class,
|
DOCUMENT_MISSING_EXCEPTION(org.elasticsearch.index.engine.DocumentMissingException.class,
|
||||||
org.elasticsearch.index.engine.DocumentMissingException::new, 29),
|
org.elasticsearch.index.engine.DocumentMissingException::new, 29, UNKNOWN_VERSION_ADDED),
|
||||||
SNAPSHOT_EXCEPTION(org.elasticsearch.snapshots.SnapshotException.class,
|
SNAPSHOT_EXCEPTION(org.elasticsearch.snapshots.SnapshotException.class,
|
||||||
org.elasticsearch.snapshots.SnapshotException::new, 30),
|
org.elasticsearch.snapshots.SnapshotException::new, 30, UNKNOWN_VERSION_ADDED),
|
||||||
INVALID_ALIAS_NAME_EXCEPTION(org.elasticsearch.indices.InvalidAliasNameException.class,
|
INVALID_ALIAS_NAME_EXCEPTION(org.elasticsearch.indices.InvalidAliasNameException.class,
|
||||||
org.elasticsearch.indices.InvalidAliasNameException::new, 31),
|
org.elasticsearch.indices.InvalidAliasNameException::new, 31, UNKNOWN_VERSION_ADDED),
|
||||||
INVALID_INDEX_NAME_EXCEPTION(org.elasticsearch.indices.InvalidIndexNameException.class,
|
INVALID_INDEX_NAME_EXCEPTION(org.elasticsearch.indices.InvalidIndexNameException.class,
|
||||||
org.elasticsearch.indices.InvalidIndexNameException::new, 32),
|
org.elasticsearch.indices.InvalidIndexNameException::new, 32, UNKNOWN_VERSION_ADDED),
|
||||||
INDEX_PRIMARY_SHARD_NOT_ALLOCATED_EXCEPTION(org.elasticsearch.indices.IndexPrimaryShardNotAllocatedException.class,
|
INDEX_PRIMARY_SHARD_NOT_ALLOCATED_EXCEPTION(org.elasticsearch.indices.IndexPrimaryShardNotAllocatedException.class,
|
||||||
org.elasticsearch.indices.IndexPrimaryShardNotAllocatedException::new, 33),
|
org.elasticsearch.indices.IndexPrimaryShardNotAllocatedException::new, 33, UNKNOWN_VERSION_ADDED),
|
||||||
TRANSPORT_EXCEPTION(org.elasticsearch.transport.TransportException.class,
|
TRANSPORT_EXCEPTION(org.elasticsearch.transport.TransportException.class,
|
||||||
org.elasticsearch.transport.TransportException::new, 34),
|
org.elasticsearch.transport.TransportException::new, 34, UNKNOWN_VERSION_ADDED),
|
||||||
ELASTICSEARCH_PARSE_EXCEPTION(org.elasticsearch.ElasticsearchParseException.class,
|
ELASTICSEARCH_PARSE_EXCEPTION(org.elasticsearch.ElasticsearchParseException.class,
|
||||||
org.elasticsearch.ElasticsearchParseException::new, 35),
|
org.elasticsearch.ElasticsearchParseException::new, 35, UNKNOWN_VERSION_ADDED),
|
||||||
SEARCH_EXCEPTION(org.elasticsearch.search.SearchException.class,
|
SEARCH_EXCEPTION(org.elasticsearch.search.SearchException.class,
|
||||||
org.elasticsearch.search.SearchException::new, 36),
|
org.elasticsearch.search.SearchException::new, 36, UNKNOWN_VERSION_ADDED),
|
||||||
MAPPER_EXCEPTION(org.elasticsearch.index.mapper.MapperException.class,
|
MAPPER_EXCEPTION(org.elasticsearch.index.mapper.MapperException.class,
|
||||||
org.elasticsearch.index.mapper.MapperException::new, 37),
|
org.elasticsearch.index.mapper.MapperException::new, 37, UNKNOWN_VERSION_ADDED),
|
||||||
INVALID_TYPE_NAME_EXCEPTION(org.elasticsearch.indices.InvalidTypeNameException.class,
|
INVALID_TYPE_NAME_EXCEPTION(org.elasticsearch.indices.InvalidTypeNameException.class,
|
||||||
org.elasticsearch.indices.InvalidTypeNameException::new, 38),
|
org.elasticsearch.indices.InvalidTypeNameException::new, 38, UNKNOWN_VERSION_ADDED),
|
||||||
SNAPSHOT_RESTORE_EXCEPTION(org.elasticsearch.snapshots.SnapshotRestoreException.class,
|
SNAPSHOT_RESTORE_EXCEPTION(org.elasticsearch.snapshots.SnapshotRestoreException.class,
|
||||||
org.elasticsearch.snapshots.SnapshotRestoreException::new, 39),
|
org.elasticsearch.snapshots.SnapshotRestoreException::new, 39, UNKNOWN_VERSION_ADDED),
|
||||||
PARSING_EXCEPTION(org.elasticsearch.common.ParsingException.class, org.elasticsearch.common.ParsingException::new, 40),
|
PARSING_EXCEPTION(org.elasticsearch.common.ParsingException.class, org.elasticsearch.common.ParsingException::new, 40,
|
||||||
|
UNKNOWN_VERSION_ADDED),
|
||||||
INDEX_SHARD_CLOSED_EXCEPTION(org.elasticsearch.index.shard.IndexShardClosedException.class,
|
INDEX_SHARD_CLOSED_EXCEPTION(org.elasticsearch.index.shard.IndexShardClosedException.class,
|
||||||
org.elasticsearch.index.shard.IndexShardClosedException::new, 41),
|
org.elasticsearch.index.shard.IndexShardClosedException::new, 41, UNKNOWN_VERSION_ADDED),
|
||||||
RECOVER_FILES_RECOVERY_EXCEPTION(org.elasticsearch.indices.recovery.RecoverFilesRecoveryException.class,
|
RECOVER_FILES_RECOVERY_EXCEPTION(org.elasticsearch.indices.recovery.RecoverFilesRecoveryException.class,
|
||||||
org.elasticsearch.indices.recovery.RecoverFilesRecoveryException::new, 42),
|
org.elasticsearch.indices.recovery.RecoverFilesRecoveryException::new, 42, UNKNOWN_VERSION_ADDED),
|
||||||
TRUNCATED_TRANSLOG_EXCEPTION(org.elasticsearch.index.translog.TruncatedTranslogException.class,
|
TRUNCATED_TRANSLOG_EXCEPTION(org.elasticsearch.index.translog.TruncatedTranslogException.class,
|
||||||
org.elasticsearch.index.translog.TruncatedTranslogException::new, 43),
|
org.elasticsearch.index.translog.TruncatedTranslogException::new, 43, UNKNOWN_VERSION_ADDED),
|
||||||
RECOVERY_FAILED_EXCEPTION(org.elasticsearch.indices.recovery.RecoveryFailedException.class,
|
RECOVERY_FAILED_EXCEPTION(org.elasticsearch.indices.recovery.RecoveryFailedException.class,
|
||||||
org.elasticsearch.indices.recovery.RecoveryFailedException::new, 44),
|
org.elasticsearch.indices.recovery.RecoveryFailedException::new, 44, UNKNOWN_VERSION_ADDED),
|
||||||
INDEX_SHARD_RELOCATED_EXCEPTION(org.elasticsearch.index.shard.IndexShardRelocatedException.class,
|
INDEX_SHARD_RELOCATED_EXCEPTION(org.elasticsearch.index.shard.IndexShardRelocatedException.class,
|
||||||
org.elasticsearch.index.shard.IndexShardRelocatedException::new, 45),
|
org.elasticsearch.index.shard.IndexShardRelocatedException::new, 45, UNKNOWN_VERSION_ADDED),
|
||||||
NODE_SHOULD_NOT_CONNECT_EXCEPTION(org.elasticsearch.transport.NodeShouldNotConnectException.class,
|
NODE_SHOULD_NOT_CONNECT_EXCEPTION(org.elasticsearch.transport.NodeShouldNotConnectException.class,
|
||||||
org.elasticsearch.transport.NodeShouldNotConnectException::new, 46),
|
org.elasticsearch.transport.NodeShouldNotConnectException::new, 46, UNKNOWN_VERSION_ADDED),
|
||||||
// 47 used to be for IndexTemplateAlreadyExistsException which was deprecated in 5.1 removed in 6.0
|
// 47 used to be for IndexTemplateAlreadyExistsException which was deprecated in 5.1 removed in 6.0
|
||||||
TRANSLOG_CORRUPTED_EXCEPTION(org.elasticsearch.index.translog.TranslogCorruptedException.class,
|
TRANSLOG_CORRUPTED_EXCEPTION(org.elasticsearch.index.translog.TranslogCorruptedException.class,
|
||||||
org.elasticsearch.index.translog.TranslogCorruptedException::new, 48),
|
org.elasticsearch.index.translog.TranslogCorruptedException::new, 48, UNKNOWN_VERSION_ADDED),
|
||||||
CLUSTER_BLOCK_EXCEPTION(org.elasticsearch.cluster.block.ClusterBlockException.class,
|
CLUSTER_BLOCK_EXCEPTION(org.elasticsearch.cluster.block.ClusterBlockException.class,
|
||||||
org.elasticsearch.cluster.block.ClusterBlockException::new, 49),
|
org.elasticsearch.cluster.block.ClusterBlockException::new, 49, UNKNOWN_VERSION_ADDED),
|
||||||
FETCH_PHASE_EXECUTION_EXCEPTION(org.elasticsearch.search.fetch.FetchPhaseExecutionException.class,
|
FETCH_PHASE_EXECUTION_EXCEPTION(org.elasticsearch.search.fetch.FetchPhaseExecutionException.class,
|
||||||
org.elasticsearch.search.fetch.FetchPhaseExecutionException::new, 50),
|
org.elasticsearch.search.fetch.FetchPhaseExecutionException::new, 50, UNKNOWN_VERSION_ADDED),
|
||||||
// 51 used to be for IndexShardAlreadyExistsException which was deprecated in 5.1 removed in 6.0
|
// 51 used to be for IndexShardAlreadyExistsException which was deprecated in 5.1 removed in 6.0
|
||||||
VERSION_CONFLICT_ENGINE_EXCEPTION(org.elasticsearch.index.engine.VersionConflictEngineException.class,
|
VERSION_CONFLICT_ENGINE_EXCEPTION(org.elasticsearch.index.engine.VersionConflictEngineException.class,
|
||||||
org.elasticsearch.index.engine.VersionConflictEngineException::new, 52),
|
org.elasticsearch.index.engine.VersionConflictEngineException::new, 52, UNKNOWN_VERSION_ADDED),
|
||||||
ENGINE_EXCEPTION(org.elasticsearch.index.engine.EngineException.class, org.elasticsearch.index.engine.EngineException::new, 53),
|
ENGINE_EXCEPTION(org.elasticsearch.index.engine.EngineException.class, org.elasticsearch.index.engine.EngineException::new, 53,
|
||||||
|
UNKNOWN_VERSION_ADDED),
|
||||||
// 54 was DocumentAlreadyExistsException, which is superseded by VersionConflictEngineException
|
// 54 was DocumentAlreadyExistsException, which is superseded by VersionConflictEngineException
|
||||||
NO_SUCH_NODE_EXCEPTION(org.elasticsearch.action.NoSuchNodeException.class, org.elasticsearch.action.NoSuchNodeException::new, 55),
|
NO_SUCH_NODE_EXCEPTION(org.elasticsearch.action.NoSuchNodeException.class, org.elasticsearch.action.NoSuchNodeException::new, 55,
|
||||||
|
UNKNOWN_VERSION_ADDED),
|
||||||
SETTINGS_EXCEPTION(org.elasticsearch.common.settings.SettingsException.class,
|
SETTINGS_EXCEPTION(org.elasticsearch.common.settings.SettingsException.class,
|
||||||
org.elasticsearch.common.settings.SettingsException::new, 56),
|
org.elasticsearch.common.settings.SettingsException::new, 56, UNKNOWN_VERSION_ADDED),
|
||||||
INDEX_TEMPLATE_MISSING_EXCEPTION(org.elasticsearch.indices.IndexTemplateMissingException.class,
|
INDEX_TEMPLATE_MISSING_EXCEPTION(org.elasticsearch.indices.IndexTemplateMissingException.class,
|
||||||
org.elasticsearch.indices.IndexTemplateMissingException::new, 57),
|
org.elasticsearch.indices.IndexTemplateMissingException::new, 57, UNKNOWN_VERSION_ADDED),
|
||||||
SEND_REQUEST_TRANSPORT_EXCEPTION(org.elasticsearch.transport.SendRequestTransportException.class,
|
SEND_REQUEST_TRANSPORT_EXCEPTION(org.elasticsearch.transport.SendRequestTransportException.class,
|
||||||
org.elasticsearch.transport.SendRequestTransportException::new, 58),
|
org.elasticsearch.transport.SendRequestTransportException::new, 58, UNKNOWN_VERSION_ADDED),
|
||||||
ES_REJECTED_EXECUTION_EXCEPTION(org.elasticsearch.common.util.concurrent.EsRejectedExecutionException.class,
|
ES_REJECTED_EXECUTION_EXCEPTION(org.elasticsearch.common.util.concurrent.EsRejectedExecutionException.class,
|
||||||
org.elasticsearch.common.util.concurrent.EsRejectedExecutionException::new, 59),
|
org.elasticsearch.common.util.concurrent.EsRejectedExecutionException::new, 59, UNKNOWN_VERSION_ADDED),
|
||||||
EARLY_TERMINATION_EXCEPTION(org.elasticsearch.common.lucene.Lucene.EarlyTerminationException.class,
|
EARLY_TERMINATION_EXCEPTION(org.elasticsearch.common.lucene.Lucene.EarlyTerminationException.class,
|
||||||
org.elasticsearch.common.lucene.Lucene.EarlyTerminationException::new, 60),
|
org.elasticsearch.common.lucene.Lucene.EarlyTerminationException::new, 60, UNKNOWN_VERSION_ADDED),
|
||||||
// 61 used to be for RoutingValidationException
|
// 61 used to be for RoutingValidationException
|
||||||
NOT_SERIALIZABLE_EXCEPTION_WRAPPER(org.elasticsearch.common.io.stream.NotSerializableExceptionWrapper.class,
|
NOT_SERIALIZABLE_EXCEPTION_WRAPPER(org.elasticsearch.common.io.stream.NotSerializableExceptionWrapper.class,
|
||||||
org.elasticsearch.common.io.stream.NotSerializableExceptionWrapper::new, 62),
|
org.elasticsearch.common.io.stream.NotSerializableExceptionWrapper::new, 62, UNKNOWN_VERSION_ADDED),
|
||||||
ALIAS_FILTER_PARSING_EXCEPTION(org.elasticsearch.indices.AliasFilterParsingException.class,
|
ALIAS_FILTER_PARSING_EXCEPTION(org.elasticsearch.indices.AliasFilterParsingException.class,
|
||||||
org.elasticsearch.indices.AliasFilterParsingException::new, 63),
|
org.elasticsearch.indices.AliasFilterParsingException::new, 63, UNKNOWN_VERSION_ADDED),
|
||||||
// 64 was DeleteByQueryFailedEngineException, which was removed in 5.0
|
// 64 was DeleteByQueryFailedEngineException, which was removed in 5.0
|
||||||
GATEWAY_EXCEPTION(org.elasticsearch.gateway.GatewayException.class, org.elasticsearch.gateway.GatewayException::new, 65),
|
GATEWAY_EXCEPTION(org.elasticsearch.gateway.GatewayException.class, org.elasticsearch.gateway.GatewayException::new, 65,
|
||||||
|
UNKNOWN_VERSION_ADDED),
|
||||||
INDEX_SHARD_NOT_RECOVERING_EXCEPTION(org.elasticsearch.index.shard.IndexShardNotRecoveringException.class,
|
INDEX_SHARD_NOT_RECOVERING_EXCEPTION(org.elasticsearch.index.shard.IndexShardNotRecoveringException.class,
|
||||||
org.elasticsearch.index.shard.IndexShardNotRecoveringException::new, 66),
|
org.elasticsearch.index.shard.IndexShardNotRecoveringException::new, 66, UNKNOWN_VERSION_ADDED),
|
||||||
HTTP_EXCEPTION(org.elasticsearch.http.HttpException.class, org.elasticsearch.http.HttpException::new, 67),
|
HTTP_EXCEPTION(org.elasticsearch.http.HttpException.class, org.elasticsearch.http.HttpException::new, 67, UNKNOWN_VERSION_ADDED),
|
||||||
ELASTICSEARCH_EXCEPTION(org.elasticsearch.ElasticsearchException.class,
|
ELASTICSEARCH_EXCEPTION(org.elasticsearch.ElasticsearchException.class,
|
||||||
org.elasticsearch.ElasticsearchException::new, 68),
|
org.elasticsearch.ElasticsearchException::new, 68, UNKNOWN_VERSION_ADDED),
|
||||||
SNAPSHOT_MISSING_EXCEPTION(org.elasticsearch.snapshots.SnapshotMissingException.class,
|
SNAPSHOT_MISSING_EXCEPTION(org.elasticsearch.snapshots.SnapshotMissingException.class,
|
||||||
org.elasticsearch.snapshots.SnapshotMissingException::new, 69),
|
org.elasticsearch.snapshots.SnapshotMissingException::new, 69, UNKNOWN_VERSION_ADDED),
|
||||||
PRIMARY_MISSING_ACTION_EXCEPTION(org.elasticsearch.action.PrimaryMissingActionException.class,
|
PRIMARY_MISSING_ACTION_EXCEPTION(org.elasticsearch.action.PrimaryMissingActionException.class,
|
||||||
org.elasticsearch.action.PrimaryMissingActionException::new, 70),
|
org.elasticsearch.action.PrimaryMissingActionException::new, 70, UNKNOWN_VERSION_ADDED),
|
||||||
FAILED_NODE_EXCEPTION(org.elasticsearch.action.FailedNodeException.class, org.elasticsearch.action.FailedNodeException::new, 71),
|
FAILED_NODE_EXCEPTION(org.elasticsearch.action.FailedNodeException.class, org.elasticsearch.action.FailedNodeException::new, 71,
|
||||||
SEARCH_PARSE_EXCEPTION(org.elasticsearch.search.SearchParseException.class, org.elasticsearch.search.SearchParseException::new, 72),
|
UNKNOWN_VERSION_ADDED),
|
||||||
|
SEARCH_PARSE_EXCEPTION(org.elasticsearch.search.SearchParseException.class, org.elasticsearch.search.SearchParseException::new, 72,
|
||||||
|
UNKNOWN_VERSION_ADDED),
|
||||||
CONCURRENT_SNAPSHOT_EXECUTION_EXCEPTION(org.elasticsearch.snapshots.ConcurrentSnapshotExecutionException.class,
|
CONCURRENT_SNAPSHOT_EXECUTION_EXCEPTION(org.elasticsearch.snapshots.ConcurrentSnapshotExecutionException.class,
|
||||||
org.elasticsearch.snapshots.ConcurrentSnapshotExecutionException::new, 73),
|
org.elasticsearch.snapshots.ConcurrentSnapshotExecutionException::new, 73, UNKNOWN_VERSION_ADDED),
|
||||||
BLOB_STORE_EXCEPTION(org.elasticsearch.common.blobstore.BlobStoreException.class,
|
BLOB_STORE_EXCEPTION(org.elasticsearch.common.blobstore.BlobStoreException.class,
|
||||||
org.elasticsearch.common.blobstore.BlobStoreException::new, 74),
|
org.elasticsearch.common.blobstore.BlobStoreException::new, 74, UNKNOWN_VERSION_ADDED),
|
||||||
INCOMPATIBLE_CLUSTER_STATE_VERSION_EXCEPTION(org.elasticsearch.cluster.IncompatibleClusterStateVersionException.class,
|
INCOMPATIBLE_CLUSTER_STATE_VERSION_EXCEPTION(org.elasticsearch.cluster.IncompatibleClusterStateVersionException.class,
|
||||||
org.elasticsearch.cluster.IncompatibleClusterStateVersionException::new, 75),
|
org.elasticsearch.cluster.IncompatibleClusterStateVersionException::new, 75, UNKNOWN_VERSION_ADDED),
|
||||||
RECOVERY_ENGINE_EXCEPTION(org.elasticsearch.index.engine.RecoveryEngineException.class,
|
RECOVERY_ENGINE_EXCEPTION(org.elasticsearch.index.engine.RecoveryEngineException.class,
|
||||||
org.elasticsearch.index.engine.RecoveryEngineException::new, 76),
|
org.elasticsearch.index.engine.RecoveryEngineException::new, 76, UNKNOWN_VERSION_ADDED),
|
||||||
UNCATEGORIZED_EXECUTION_EXCEPTION(org.elasticsearch.common.util.concurrent.UncategorizedExecutionException.class,
|
UNCATEGORIZED_EXECUTION_EXCEPTION(org.elasticsearch.common.util.concurrent.UncategorizedExecutionException.class,
|
||||||
org.elasticsearch.common.util.concurrent.UncategorizedExecutionException::new, 77),
|
org.elasticsearch.common.util.concurrent.UncategorizedExecutionException::new, 77, UNKNOWN_VERSION_ADDED),
|
||||||
TIMESTAMP_PARSING_EXCEPTION(org.elasticsearch.action.TimestampParsingException.class,
|
TIMESTAMP_PARSING_EXCEPTION(org.elasticsearch.action.TimestampParsingException.class,
|
||||||
org.elasticsearch.action.TimestampParsingException::new, 78),
|
org.elasticsearch.action.TimestampParsingException::new, 78, UNKNOWN_VERSION_ADDED),
|
||||||
ROUTING_MISSING_EXCEPTION(org.elasticsearch.action.RoutingMissingException.class,
|
ROUTING_MISSING_EXCEPTION(org.elasticsearch.action.RoutingMissingException.class,
|
||||||
org.elasticsearch.action.RoutingMissingException::new, 79),
|
org.elasticsearch.action.RoutingMissingException::new, 79, UNKNOWN_VERSION_ADDED),
|
||||||
INDEX_FAILED_ENGINE_EXCEPTION(org.elasticsearch.index.engine.IndexFailedEngineException.class,
|
INDEX_FAILED_ENGINE_EXCEPTION(org.elasticsearch.index.engine.IndexFailedEngineException.class, // deprecated in 6.0, remove in 7.0
|
||||||
org.elasticsearch.index.engine.IndexFailedEngineException::new, 80), // deprecated in 6.0, remove in 7.0
|
org.elasticsearch.index.engine.IndexFailedEngineException::new, 80, UNKNOWN_VERSION_ADDED),
|
||||||
INDEX_SHARD_RESTORE_FAILED_EXCEPTION(org.elasticsearch.index.snapshots.IndexShardRestoreFailedException.class,
|
INDEX_SHARD_RESTORE_FAILED_EXCEPTION(org.elasticsearch.index.snapshots.IndexShardRestoreFailedException.class,
|
||||||
org.elasticsearch.index.snapshots.IndexShardRestoreFailedException::new, 81),
|
org.elasticsearch.index.snapshots.IndexShardRestoreFailedException::new, 81, UNKNOWN_VERSION_ADDED),
|
||||||
REPOSITORY_EXCEPTION(org.elasticsearch.repositories.RepositoryException.class,
|
REPOSITORY_EXCEPTION(org.elasticsearch.repositories.RepositoryException.class,
|
||||||
org.elasticsearch.repositories.RepositoryException::new, 82),
|
org.elasticsearch.repositories.RepositoryException::new, 82, UNKNOWN_VERSION_ADDED),
|
||||||
RECEIVE_TIMEOUT_TRANSPORT_EXCEPTION(org.elasticsearch.transport.ReceiveTimeoutTransportException.class,
|
RECEIVE_TIMEOUT_TRANSPORT_EXCEPTION(org.elasticsearch.transport.ReceiveTimeoutTransportException.class,
|
||||||
org.elasticsearch.transport.ReceiveTimeoutTransportException::new, 83),
|
org.elasticsearch.transport.ReceiveTimeoutTransportException::new, 83, UNKNOWN_VERSION_ADDED),
|
||||||
NODE_DISCONNECTED_EXCEPTION(org.elasticsearch.transport.NodeDisconnectedException.class,
|
NODE_DISCONNECTED_EXCEPTION(org.elasticsearch.transport.NodeDisconnectedException.class,
|
||||||
org.elasticsearch.transport.NodeDisconnectedException::new, 84),
|
org.elasticsearch.transport.NodeDisconnectedException::new, 84, UNKNOWN_VERSION_ADDED),
|
||||||
ALREADY_EXPIRED_EXCEPTION(org.elasticsearch.index.AlreadyExpiredException.class,
|
ALREADY_EXPIRED_EXCEPTION(org.elasticsearch.index.AlreadyExpiredException.class,
|
||||||
org.elasticsearch.index.AlreadyExpiredException::new, 85),
|
org.elasticsearch.index.AlreadyExpiredException::new, 85, UNKNOWN_VERSION_ADDED),
|
||||||
AGGREGATION_EXECUTION_EXCEPTION(org.elasticsearch.search.aggregations.AggregationExecutionException.class,
|
AGGREGATION_EXECUTION_EXCEPTION(org.elasticsearch.search.aggregations.AggregationExecutionException.class,
|
||||||
org.elasticsearch.search.aggregations.AggregationExecutionException::new, 86),
|
org.elasticsearch.search.aggregations.AggregationExecutionException::new, 86, UNKNOWN_VERSION_ADDED),
|
||||||
// 87 used to be for MergeMappingException
|
// 87 used to be for MergeMappingException
|
||||||
INVALID_INDEX_TEMPLATE_EXCEPTION(org.elasticsearch.indices.InvalidIndexTemplateException.class,
|
INVALID_INDEX_TEMPLATE_EXCEPTION(org.elasticsearch.indices.InvalidIndexTemplateException.class,
|
||||||
org.elasticsearch.indices.InvalidIndexTemplateException::new, 88),
|
org.elasticsearch.indices.InvalidIndexTemplateException::new, 88, UNKNOWN_VERSION_ADDED),
|
||||||
REFRESH_FAILED_ENGINE_EXCEPTION(org.elasticsearch.index.engine.RefreshFailedEngineException.class,
|
REFRESH_FAILED_ENGINE_EXCEPTION(org.elasticsearch.index.engine.RefreshFailedEngineException.class,
|
||||||
org.elasticsearch.index.engine.RefreshFailedEngineException::new, 90),
|
org.elasticsearch.index.engine.RefreshFailedEngineException::new, 90, UNKNOWN_VERSION_ADDED),
|
||||||
AGGREGATION_INITIALIZATION_EXCEPTION(org.elasticsearch.search.aggregations.AggregationInitializationException.class,
|
AGGREGATION_INITIALIZATION_EXCEPTION(org.elasticsearch.search.aggregations.AggregationInitializationException.class,
|
||||||
org.elasticsearch.search.aggregations.AggregationInitializationException::new, 91),
|
org.elasticsearch.search.aggregations.AggregationInitializationException::new, 91, UNKNOWN_VERSION_ADDED),
|
||||||
DELAY_RECOVERY_EXCEPTION(org.elasticsearch.indices.recovery.DelayRecoveryException.class,
|
DELAY_RECOVERY_EXCEPTION(org.elasticsearch.indices.recovery.DelayRecoveryException.class,
|
||||||
org.elasticsearch.indices.recovery.DelayRecoveryException::new, 92),
|
org.elasticsearch.indices.recovery.DelayRecoveryException::new, 92, UNKNOWN_VERSION_ADDED),
|
||||||
// 93 used to be for IndexWarmerMissingException
|
// 93 used to be for IndexWarmerMissingException
|
||||||
NO_NODE_AVAILABLE_EXCEPTION(org.elasticsearch.client.transport.NoNodeAvailableException.class,
|
NO_NODE_AVAILABLE_EXCEPTION(org.elasticsearch.client.transport.NoNodeAvailableException.class,
|
||||||
org.elasticsearch.client.transport.NoNodeAvailableException::new, 94),
|
org.elasticsearch.client.transport.NoNodeAvailableException::new, 94, UNKNOWN_VERSION_ADDED),
|
||||||
INVALID_SNAPSHOT_NAME_EXCEPTION(org.elasticsearch.snapshots.InvalidSnapshotNameException.class,
|
INVALID_SNAPSHOT_NAME_EXCEPTION(org.elasticsearch.snapshots.InvalidSnapshotNameException.class,
|
||||||
org.elasticsearch.snapshots.InvalidSnapshotNameException::new, 96),
|
org.elasticsearch.snapshots.InvalidSnapshotNameException::new, 96, UNKNOWN_VERSION_ADDED),
|
||||||
ILLEGAL_INDEX_SHARD_STATE_EXCEPTION(org.elasticsearch.index.shard.IllegalIndexShardStateException.class,
|
ILLEGAL_INDEX_SHARD_STATE_EXCEPTION(org.elasticsearch.index.shard.IllegalIndexShardStateException.class,
|
||||||
org.elasticsearch.index.shard.IllegalIndexShardStateException::new, 97),
|
org.elasticsearch.index.shard.IllegalIndexShardStateException::new, 97, UNKNOWN_VERSION_ADDED),
|
||||||
INDEX_SHARD_SNAPSHOT_EXCEPTION(org.elasticsearch.index.snapshots.IndexShardSnapshotException.class,
|
INDEX_SHARD_SNAPSHOT_EXCEPTION(org.elasticsearch.index.snapshots.IndexShardSnapshotException.class,
|
||||||
org.elasticsearch.index.snapshots.IndexShardSnapshotException::new, 98),
|
org.elasticsearch.index.snapshots.IndexShardSnapshotException::new, 98, UNKNOWN_VERSION_ADDED),
|
||||||
INDEX_SHARD_NOT_STARTED_EXCEPTION(org.elasticsearch.index.shard.IndexShardNotStartedException.class,
|
INDEX_SHARD_NOT_STARTED_EXCEPTION(org.elasticsearch.index.shard.IndexShardNotStartedException.class,
|
||||||
org.elasticsearch.index.shard.IndexShardNotStartedException::new, 99),
|
org.elasticsearch.index.shard.IndexShardNotStartedException::new, 99, UNKNOWN_VERSION_ADDED),
|
||||||
SEARCH_PHASE_EXECUTION_EXCEPTION(org.elasticsearch.action.search.SearchPhaseExecutionException.class,
|
SEARCH_PHASE_EXECUTION_EXCEPTION(org.elasticsearch.action.search.SearchPhaseExecutionException.class,
|
||||||
org.elasticsearch.action.search.SearchPhaseExecutionException::new, 100),
|
org.elasticsearch.action.search.SearchPhaseExecutionException::new, 100, UNKNOWN_VERSION_ADDED),
|
||||||
ACTION_NOT_FOUND_TRANSPORT_EXCEPTION(org.elasticsearch.transport.ActionNotFoundTransportException.class,
|
ACTION_NOT_FOUND_TRANSPORT_EXCEPTION(org.elasticsearch.transport.ActionNotFoundTransportException.class,
|
||||||
org.elasticsearch.transport.ActionNotFoundTransportException::new, 101),
|
org.elasticsearch.transport.ActionNotFoundTransportException::new, 101, UNKNOWN_VERSION_ADDED),
|
||||||
TRANSPORT_SERIALIZATION_EXCEPTION(org.elasticsearch.transport.TransportSerializationException.class,
|
TRANSPORT_SERIALIZATION_EXCEPTION(org.elasticsearch.transport.TransportSerializationException.class,
|
||||||
org.elasticsearch.transport.TransportSerializationException::new, 102),
|
org.elasticsearch.transport.TransportSerializationException::new, 102, UNKNOWN_VERSION_ADDED),
|
||||||
REMOTE_TRANSPORT_EXCEPTION(org.elasticsearch.transport.RemoteTransportException.class,
|
REMOTE_TRANSPORT_EXCEPTION(org.elasticsearch.transport.RemoteTransportException.class,
|
||||||
org.elasticsearch.transport.RemoteTransportException::new, 103),
|
org.elasticsearch.transport.RemoteTransportException::new, 103, UNKNOWN_VERSION_ADDED),
|
||||||
ENGINE_CREATION_FAILURE_EXCEPTION(org.elasticsearch.index.engine.EngineCreationFailureException.class,
|
ENGINE_CREATION_FAILURE_EXCEPTION(org.elasticsearch.index.engine.EngineCreationFailureException.class,
|
||||||
org.elasticsearch.index.engine.EngineCreationFailureException::new, 104),
|
org.elasticsearch.index.engine.EngineCreationFailureException::new, 104, UNKNOWN_VERSION_ADDED),
|
||||||
ROUTING_EXCEPTION(org.elasticsearch.cluster.routing.RoutingException.class,
|
ROUTING_EXCEPTION(org.elasticsearch.cluster.routing.RoutingException.class,
|
||||||
org.elasticsearch.cluster.routing.RoutingException::new, 105),
|
org.elasticsearch.cluster.routing.RoutingException::new, 105, UNKNOWN_VERSION_ADDED),
|
||||||
INDEX_SHARD_RECOVERY_EXCEPTION(org.elasticsearch.index.shard.IndexShardRecoveryException.class,
|
INDEX_SHARD_RECOVERY_EXCEPTION(org.elasticsearch.index.shard.IndexShardRecoveryException.class,
|
||||||
org.elasticsearch.index.shard.IndexShardRecoveryException::new, 106),
|
org.elasticsearch.index.shard.IndexShardRecoveryException::new, 106, UNKNOWN_VERSION_ADDED),
|
||||||
REPOSITORY_MISSING_EXCEPTION(org.elasticsearch.repositories.RepositoryMissingException.class,
|
REPOSITORY_MISSING_EXCEPTION(org.elasticsearch.repositories.RepositoryMissingException.class,
|
||||||
org.elasticsearch.repositories.RepositoryMissingException::new, 107),
|
org.elasticsearch.repositories.RepositoryMissingException::new, 107, UNKNOWN_VERSION_ADDED),
|
||||||
DOCUMENT_SOURCE_MISSING_EXCEPTION(org.elasticsearch.index.engine.DocumentSourceMissingException.class,
|
DOCUMENT_SOURCE_MISSING_EXCEPTION(org.elasticsearch.index.engine.DocumentSourceMissingException.class,
|
||||||
org.elasticsearch.index.engine.DocumentSourceMissingException::new, 109),
|
org.elasticsearch.index.engine.DocumentSourceMissingException::new, 109, UNKNOWN_VERSION_ADDED),
|
||||||
// 110 used to be FlushNotAllowedEngineException
|
// 110 used to be FlushNotAllowedEngineException
|
||||||
NO_CLASS_SETTINGS_EXCEPTION(org.elasticsearch.common.settings.NoClassSettingsException.class,
|
NO_CLASS_SETTINGS_EXCEPTION(org.elasticsearch.common.settings.NoClassSettingsException.class,
|
||||||
org.elasticsearch.common.settings.NoClassSettingsException::new, 111),
|
org.elasticsearch.common.settings.NoClassSettingsException::new, 111, UNKNOWN_VERSION_ADDED),
|
||||||
BIND_TRANSPORT_EXCEPTION(org.elasticsearch.transport.BindTransportException.class,
|
BIND_TRANSPORT_EXCEPTION(org.elasticsearch.transport.BindTransportException.class,
|
||||||
org.elasticsearch.transport.BindTransportException::new, 112),
|
org.elasticsearch.transport.BindTransportException::new, 112, UNKNOWN_VERSION_ADDED),
|
||||||
ALIASES_NOT_FOUND_EXCEPTION(org.elasticsearch.rest.action.admin.indices.AliasesNotFoundException.class,
|
ALIASES_NOT_FOUND_EXCEPTION(org.elasticsearch.rest.action.admin.indices.AliasesNotFoundException.class,
|
||||||
org.elasticsearch.rest.action.admin.indices.AliasesNotFoundException::new, 113),
|
org.elasticsearch.rest.action.admin.indices.AliasesNotFoundException::new, 113, UNKNOWN_VERSION_ADDED),
|
||||||
INDEX_SHARD_RECOVERING_EXCEPTION(org.elasticsearch.index.shard.IndexShardRecoveringException.class,
|
INDEX_SHARD_RECOVERING_EXCEPTION(org.elasticsearch.index.shard.IndexShardRecoveringException.class,
|
||||||
org.elasticsearch.index.shard.IndexShardRecoveringException::new, 114),
|
org.elasticsearch.index.shard.IndexShardRecoveringException::new, 114, UNKNOWN_VERSION_ADDED),
|
||||||
TRANSLOG_EXCEPTION(org.elasticsearch.index.translog.TranslogException.class,
|
TRANSLOG_EXCEPTION(org.elasticsearch.index.translog.TranslogException.class,
|
||||||
org.elasticsearch.index.translog.TranslogException::new, 115),
|
org.elasticsearch.index.translog.TranslogException::new, 115, UNKNOWN_VERSION_ADDED),
|
||||||
PROCESS_CLUSTER_EVENT_TIMEOUT_EXCEPTION(org.elasticsearch.cluster.metadata.ProcessClusterEventTimeoutException.class,
|
PROCESS_CLUSTER_EVENT_TIMEOUT_EXCEPTION(org.elasticsearch.cluster.metadata.ProcessClusterEventTimeoutException.class,
|
||||||
org.elasticsearch.cluster.metadata.ProcessClusterEventTimeoutException::new, 116),
|
org.elasticsearch.cluster.metadata.ProcessClusterEventTimeoutException::new, 116, UNKNOWN_VERSION_ADDED),
|
||||||
RETRY_ON_PRIMARY_EXCEPTION(ReplicationOperation.RetryOnPrimaryException.class,
|
RETRY_ON_PRIMARY_EXCEPTION(ReplicationOperation.RetryOnPrimaryException.class,
|
||||||
ReplicationOperation.RetryOnPrimaryException::new, 117),
|
ReplicationOperation.RetryOnPrimaryException::new, 117, UNKNOWN_VERSION_ADDED),
|
||||||
ELASTICSEARCH_TIMEOUT_EXCEPTION(org.elasticsearch.ElasticsearchTimeoutException.class,
|
ELASTICSEARCH_TIMEOUT_EXCEPTION(org.elasticsearch.ElasticsearchTimeoutException.class,
|
||||||
org.elasticsearch.ElasticsearchTimeoutException::new, 118),
|
org.elasticsearch.ElasticsearchTimeoutException::new, 118, UNKNOWN_VERSION_ADDED),
|
||||||
QUERY_PHASE_EXECUTION_EXCEPTION(org.elasticsearch.search.query.QueryPhaseExecutionException.class,
|
QUERY_PHASE_EXECUTION_EXCEPTION(org.elasticsearch.search.query.QueryPhaseExecutionException.class,
|
||||||
org.elasticsearch.search.query.QueryPhaseExecutionException::new, 119),
|
org.elasticsearch.search.query.QueryPhaseExecutionException::new, 119, UNKNOWN_VERSION_ADDED),
|
||||||
REPOSITORY_VERIFICATION_EXCEPTION(org.elasticsearch.repositories.RepositoryVerificationException.class,
|
REPOSITORY_VERIFICATION_EXCEPTION(org.elasticsearch.repositories.RepositoryVerificationException.class,
|
||||||
org.elasticsearch.repositories.RepositoryVerificationException::new, 120),
|
org.elasticsearch.repositories.RepositoryVerificationException::new, 120, UNKNOWN_VERSION_ADDED),
|
||||||
INVALID_AGGREGATION_PATH_EXCEPTION(org.elasticsearch.search.aggregations.InvalidAggregationPathException.class,
|
INVALID_AGGREGATION_PATH_EXCEPTION(org.elasticsearch.search.aggregations.InvalidAggregationPathException.class,
|
||||||
org.elasticsearch.search.aggregations.InvalidAggregationPathException::new, 121),
|
org.elasticsearch.search.aggregations.InvalidAggregationPathException::new, 121, UNKNOWN_VERSION_ADDED),
|
||||||
// 123 used to be IndexAlreadyExistsException and was renamed
|
// 123 used to be IndexAlreadyExistsException and was renamed
|
||||||
RESOURCE_ALREADY_EXISTS_EXCEPTION(ResourceAlreadyExistsException.class,
|
RESOURCE_ALREADY_EXISTS_EXCEPTION(ResourceAlreadyExistsException.class,
|
||||||
ResourceAlreadyExistsException::new, 123),
|
ResourceAlreadyExistsException::new, 123, UNKNOWN_VERSION_ADDED),
|
||||||
// 124 used to be Script.ScriptParseException
|
// 124 used to be Script.ScriptParseException
|
||||||
HTTP_ON_TRANSPORT_EXCEPTION(TcpTransport.HttpOnTransportException.class,
|
HTTP_ON_TRANSPORT_EXCEPTION(TcpTransport.HttpOnTransportException.class,
|
||||||
TcpTransport.HttpOnTransportException::new, 125),
|
TcpTransport.HttpOnTransportException::new, 125, UNKNOWN_VERSION_ADDED),
|
||||||
MAPPER_PARSING_EXCEPTION(org.elasticsearch.index.mapper.MapperParsingException.class,
|
MAPPER_PARSING_EXCEPTION(org.elasticsearch.index.mapper.MapperParsingException.class,
|
||||||
org.elasticsearch.index.mapper.MapperParsingException::new, 126),
|
org.elasticsearch.index.mapper.MapperParsingException::new, 126, UNKNOWN_VERSION_ADDED),
|
||||||
SEARCH_CONTEXT_EXCEPTION(org.elasticsearch.search.SearchContextException.class,
|
SEARCH_CONTEXT_EXCEPTION(org.elasticsearch.search.SearchContextException.class,
|
||||||
org.elasticsearch.search.SearchContextException::new, 127),
|
org.elasticsearch.search.SearchContextException::new, 127, UNKNOWN_VERSION_ADDED),
|
||||||
SEARCH_SOURCE_BUILDER_EXCEPTION(org.elasticsearch.search.builder.SearchSourceBuilderException.class,
|
SEARCH_SOURCE_BUILDER_EXCEPTION(org.elasticsearch.search.builder.SearchSourceBuilderException.class,
|
||||||
org.elasticsearch.search.builder.SearchSourceBuilderException::new, 128),
|
org.elasticsearch.search.builder.SearchSourceBuilderException::new, 128, UNKNOWN_VERSION_ADDED),
|
||||||
ENGINE_CLOSED_EXCEPTION(org.elasticsearch.index.engine.EngineClosedException.class,
|
ENGINE_CLOSED_EXCEPTION(org.elasticsearch.index.engine.EngineClosedException.class,
|
||||||
org.elasticsearch.index.engine.EngineClosedException::new, 129),
|
org.elasticsearch.index.engine.EngineClosedException::new, 129, UNKNOWN_VERSION_ADDED),
|
||||||
NO_SHARD_AVAILABLE_ACTION_EXCEPTION(org.elasticsearch.action.NoShardAvailableActionException.class,
|
NO_SHARD_AVAILABLE_ACTION_EXCEPTION(org.elasticsearch.action.NoShardAvailableActionException.class,
|
||||||
org.elasticsearch.action.NoShardAvailableActionException::new, 130),
|
org.elasticsearch.action.NoShardAvailableActionException::new, 130, UNKNOWN_VERSION_ADDED),
|
||||||
UNAVAILABLE_SHARDS_EXCEPTION(org.elasticsearch.action.UnavailableShardsException.class,
|
UNAVAILABLE_SHARDS_EXCEPTION(org.elasticsearch.action.UnavailableShardsException.class,
|
||||||
org.elasticsearch.action.UnavailableShardsException::new, 131),
|
org.elasticsearch.action.UnavailableShardsException::new, 131, UNKNOWN_VERSION_ADDED),
|
||||||
FLUSH_FAILED_ENGINE_EXCEPTION(org.elasticsearch.index.engine.FlushFailedEngineException.class,
|
FLUSH_FAILED_ENGINE_EXCEPTION(org.elasticsearch.index.engine.FlushFailedEngineException.class,
|
||||||
org.elasticsearch.index.engine.FlushFailedEngineException::new, 132),
|
org.elasticsearch.index.engine.FlushFailedEngineException::new, 132, UNKNOWN_VERSION_ADDED),
|
||||||
CIRCUIT_BREAKING_EXCEPTION(org.elasticsearch.common.breaker.CircuitBreakingException.class,
|
CIRCUIT_BREAKING_EXCEPTION(org.elasticsearch.common.breaker.CircuitBreakingException.class,
|
||||||
org.elasticsearch.common.breaker.CircuitBreakingException::new, 133),
|
org.elasticsearch.common.breaker.CircuitBreakingException::new, 133, UNKNOWN_VERSION_ADDED),
|
||||||
NODE_NOT_CONNECTED_EXCEPTION(org.elasticsearch.transport.NodeNotConnectedException.class,
|
NODE_NOT_CONNECTED_EXCEPTION(org.elasticsearch.transport.NodeNotConnectedException.class,
|
||||||
org.elasticsearch.transport.NodeNotConnectedException::new, 134),
|
org.elasticsearch.transport.NodeNotConnectedException::new, 134, UNKNOWN_VERSION_ADDED),
|
||||||
STRICT_DYNAMIC_MAPPING_EXCEPTION(org.elasticsearch.index.mapper.StrictDynamicMappingException.class,
|
STRICT_DYNAMIC_MAPPING_EXCEPTION(org.elasticsearch.index.mapper.StrictDynamicMappingException.class,
|
||||||
org.elasticsearch.index.mapper.StrictDynamicMappingException::new, 135),
|
org.elasticsearch.index.mapper.StrictDynamicMappingException::new, 135, UNKNOWN_VERSION_ADDED),
|
||||||
RETRY_ON_REPLICA_EXCEPTION(org.elasticsearch.action.support.replication.TransportReplicationAction.RetryOnReplicaException.class,
|
RETRY_ON_REPLICA_EXCEPTION(org.elasticsearch.action.support.replication.TransportReplicationAction.RetryOnReplicaException.class,
|
||||||
org.elasticsearch.action.support.replication.TransportReplicationAction.RetryOnReplicaException::new, 136),
|
org.elasticsearch.action.support.replication.TransportReplicationAction.RetryOnReplicaException::new, 136,
|
||||||
|
UNKNOWN_VERSION_ADDED),
|
||||||
TYPE_MISSING_EXCEPTION(org.elasticsearch.indices.TypeMissingException.class,
|
TYPE_MISSING_EXCEPTION(org.elasticsearch.indices.TypeMissingException.class,
|
||||||
org.elasticsearch.indices.TypeMissingException::new, 137),
|
org.elasticsearch.indices.TypeMissingException::new, 137, UNKNOWN_VERSION_ADDED),
|
||||||
FAILED_TO_COMMIT_CLUSTER_STATE_EXCEPTION(org.elasticsearch.discovery.Discovery.FailedToCommitClusterStateException.class,
|
FAILED_TO_COMMIT_CLUSTER_STATE_EXCEPTION(org.elasticsearch.discovery.Discovery.FailedToCommitClusterStateException.class,
|
||||||
org.elasticsearch.discovery.Discovery.FailedToCommitClusterStateException::new, 140),
|
org.elasticsearch.discovery.Discovery.FailedToCommitClusterStateException::new, 140, UNKNOWN_VERSION_ADDED),
|
||||||
QUERY_SHARD_EXCEPTION(org.elasticsearch.index.query.QueryShardException.class,
|
QUERY_SHARD_EXCEPTION(org.elasticsearch.index.query.QueryShardException.class,
|
||||||
org.elasticsearch.index.query.QueryShardException::new, 141),
|
org.elasticsearch.index.query.QueryShardException::new, 141, UNKNOWN_VERSION_ADDED),
|
||||||
NO_LONGER_PRIMARY_SHARD_EXCEPTION(ShardStateAction.NoLongerPrimaryShardException.class,
|
NO_LONGER_PRIMARY_SHARD_EXCEPTION(ShardStateAction.NoLongerPrimaryShardException.class,
|
||||||
ShardStateAction.NoLongerPrimaryShardException::new, 142),
|
ShardStateAction.NoLongerPrimaryShardException::new, 142, UNKNOWN_VERSION_ADDED),
|
||||||
SCRIPT_EXCEPTION(org.elasticsearch.script.ScriptException.class, org.elasticsearch.script.ScriptException::new, 143),
|
SCRIPT_EXCEPTION(org.elasticsearch.script.ScriptException.class, org.elasticsearch.script.ScriptException::new, 143,
|
||||||
NOT_MASTER_EXCEPTION(org.elasticsearch.cluster.NotMasterException.class, org.elasticsearch.cluster.NotMasterException::new, 144),
|
UNKNOWN_VERSION_ADDED),
|
||||||
STATUS_EXCEPTION(org.elasticsearch.ElasticsearchStatusException.class, org.elasticsearch.ElasticsearchStatusException::new, 145),
|
NOT_MASTER_EXCEPTION(org.elasticsearch.cluster.NotMasterException.class, org.elasticsearch.cluster.NotMasterException::new, 144,
|
||||||
|
UNKNOWN_VERSION_ADDED),
|
||||||
|
STATUS_EXCEPTION(org.elasticsearch.ElasticsearchStatusException.class, org.elasticsearch.ElasticsearchStatusException::new, 145,
|
||||||
|
UNKNOWN_VERSION_ADDED),
|
||||||
TASK_CANCELLED_EXCEPTION(org.elasticsearch.tasks.TaskCancelledException.class,
|
TASK_CANCELLED_EXCEPTION(org.elasticsearch.tasks.TaskCancelledException.class,
|
||||||
org.elasticsearch.tasks.TaskCancelledException::new, 146);
|
org.elasticsearch.tasks.TaskCancelledException::new, 146, UNKNOWN_VERSION_ADDED),
|
||||||
|
SHARD_LOCK_OBTAIN_FAILED_EXCEPTION(org.elasticsearch.env.ShardLockObtainFailedException.class,
|
||||||
|
org.elasticsearch.env.ShardLockObtainFailedException::new, 147, V_5_1_0_UNRELEASED);
|
||||||
|
|
||||||
|
|
||||||
final Class<? extends ElasticsearchException> exceptionClass;
|
final Class<? extends ElasticsearchException> exceptionClass;
|
||||||
final FunctionThatThrowsIOException<StreamInput, ? extends ElasticsearchException> constructor;
|
final FunctionThatThrowsIOException<StreamInput, ? extends ElasticsearchException> constructor;
|
||||||
final int id;
|
final int id;
|
||||||
|
final Version versionAdded;
|
||||||
|
|
||||||
<E extends ElasticsearchException> ElasticsearchExceptionHandle(Class<E> exceptionClass,
|
<E extends ElasticsearchException> ElasticsearchExceptionHandle(Class<E> exceptionClass,
|
||||||
FunctionThatThrowsIOException<StreamInput, E> constructor, int id) {
|
FunctionThatThrowsIOException<StreamInput, E> constructor, int id,
|
||||||
|
Version versionAdded) {
|
||||||
// We need the exceptionClass because you can't dig it out of the constructor reliably.
|
// We need the exceptionClass because you can't dig it out of the constructor reliably.
|
||||||
this.exceptionClass = exceptionClass;
|
this.exceptionClass = exceptionClass;
|
||||||
this.constructor = constructor;
|
this.constructor = constructor;
|
||||||
|
this.versionAdded = versionAdded;
|
||||||
this.id = id;
|
this.id = id;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -802,7 +802,7 @@ public abstract class StreamOutput extends OutputStream {
|
||||||
writeVInt(17);
|
writeVInt(17);
|
||||||
} else {
|
} else {
|
||||||
ElasticsearchException ex;
|
ElasticsearchException ex;
|
||||||
if (throwable instanceof ElasticsearchException && ElasticsearchException.isRegistered(throwable.getClass())) {
|
if (throwable instanceof ElasticsearchException && ElasticsearchException.isRegistered(throwable.getClass(), version)) {
|
||||||
ex = (ElasticsearchException) throwable;
|
ex = (ElasticsearchException) throwable;
|
||||||
} else {
|
} else {
|
||||||
ex = new NotSerializableExceptionWrapper(throwable);
|
ex = new NotSerializableExceptionWrapper(throwable);
|
||||||
|
|
|
@ -19,30 +19,36 @@
|
||||||
|
|
||||||
package org.elasticsearch.env;
|
package org.elasticsearch.env;
|
||||||
|
|
||||||
|
import org.elasticsearch.ElasticsearchException;
|
||||||
|
import org.elasticsearch.common.io.stream.StreamInput;
|
||||||
import org.elasticsearch.index.shard.ShardId;
|
import org.elasticsearch.index.shard.ShardId;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Exception used when the in-memory lock for a shard cannot be obtained
|
* Exception used when the in-memory lock for a shard cannot be obtained
|
||||||
*/
|
*/
|
||||||
public class ShardLockObtainFailedException extends Exception {
|
public class ShardLockObtainFailedException extends ElasticsearchException {
|
||||||
private final ShardId shardId;
|
|
||||||
|
|
||||||
public ShardLockObtainFailedException(ShardId shardId, String message) {
|
public ShardLockObtainFailedException(ShardId shardId, String message) {
|
||||||
super(message);
|
super(buildMessage(shardId, message));
|
||||||
this.shardId = shardId;
|
this.setShard(shardId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public ShardLockObtainFailedException(ShardId shardId, String message, Throwable cause) {
|
public ShardLockObtainFailedException(ShardId shardId, String message, Throwable cause) {
|
||||||
super(message, cause);
|
super(buildMessage(shardId, message), cause);
|
||||||
this.shardId = shardId;
|
this.setShard(shardId);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
public ShardLockObtainFailedException(StreamInput in) throws IOException {
|
||||||
public String getMessage() {
|
super(in);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static String buildMessage(ShardId shardId, String message) {
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
sb.append(shardId.toString());
|
sb.append(shardId.toString());
|
||||||
sb.append(": ");
|
sb.append(": ");
|
||||||
sb.append(super.getMessage());
|
sb.append(message);
|
||||||
return sb.toString();
|
return sb.toString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -49,6 +49,7 @@ import org.elasticsearch.common.xcontent.XContentBuilder;
|
||||||
import org.elasticsearch.common.xcontent.XContentFactory;
|
import org.elasticsearch.common.xcontent.XContentFactory;
|
||||||
import org.elasticsearch.common.xcontent.XContentLocation;
|
import org.elasticsearch.common.xcontent.XContentLocation;
|
||||||
import org.elasticsearch.discovery.DiscoverySettings;
|
import org.elasticsearch.discovery.DiscoverySettings;
|
||||||
|
import org.elasticsearch.env.ShardLockObtainFailedException;
|
||||||
import org.elasticsearch.index.AlreadyExpiredException;
|
import org.elasticsearch.index.AlreadyExpiredException;
|
||||||
import org.elasticsearch.index.Index;
|
import org.elasticsearch.index.Index;
|
||||||
import org.elasticsearch.index.engine.RecoveryEngineException;
|
import org.elasticsearch.index.engine.RecoveryEngineException;
|
||||||
|
@ -107,6 +108,7 @@ import static java.util.Collections.emptyMap;
|
||||||
import static java.util.Collections.emptySet;
|
import static java.util.Collections.emptySet;
|
||||||
import static java.util.Collections.singleton;
|
import static java.util.Collections.singleton;
|
||||||
import static org.hamcrest.Matchers.greaterThanOrEqualTo;
|
import static org.hamcrest.Matchers.greaterThanOrEqualTo;
|
||||||
|
import static org.hamcrest.Matchers.instanceOf;
|
||||||
|
|
||||||
public class ExceptionSerializationTests extends ESTestCase {
|
public class ExceptionSerializationTests extends ESTestCase {
|
||||||
|
|
||||||
|
@ -160,10 +162,10 @@ public class ExceptionSerializationTests extends ESTestCase {
|
||||||
if (isEsException(clazz) == false) {
|
if (isEsException(clazz) == false) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (ElasticsearchException.isRegistered(clazz.asSubclass(Throwable.class)) == false
|
if (ElasticsearchException.isRegistered(clazz.asSubclass(Throwable.class), Version.CURRENT) == false
|
||||||
&& ElasticsearchException.class.equals(clazz.getEnclosingClass()) == false) {
|
&& ElasticsearchException.class.equals(clazz.getEnclosingClass()) == false) {
|
||||||
notRegistered.add(clazz);
|
notRegistered.add(clazz);
|
||||||
} else if (ElasticsearchException.isRegistered(clazz.asSubclass(Throwable.class))) {
|
} else if (ElasticsearchException.isRegistered(clazz.asSubclass(Throwable.class), Version.CURRENT)) {
|
||||||
registered.add(clazz);
|
registered.add(clazz);
|
||||||
try {
|
try {
|
||||||
if (clazz.getMethod("writeTo", StreamOutput.class) != null) {
|
if (clazz.getMethod("writeTo", StreamOutput.class) != null) {
|
||||||
|
@ -218,10 +220,17 @@ public class ExceptionSerializationTests extends ESTestCase {
|
||||||
}
|
}
|
||||||
|
|
||||||
private <T extends Exception> T serialize(T exception) throws IOException {
|
private <T extends Exception> T serialize(T exception) throws IOException {
|
||||||
ElasticsearchAssertions.assertVersionSerializable(VersionUtils.randomVersion(random()), exception);
|
return serialize(exception, VersionUtils.randomVersion(random()));
|
||||||
|
}
|
||||||
|
|
||||||
|
private <T extends Exception> T serialize(T exception, Version version) throws IOException {
|
||||||
|
ElasticsearchAssertions.assertVersionSerializable(version, exception);
|
||||||
BytesStreamOutput out = new BytesStreamOutput();
|
BytesStreamOutput out = new BytesStreamOutput();
|
||||||
|
out.setVersion(version);
|
||||||
out.writeException(exception);
|
out.writeException(exception);
|
||||||
|
|
||||||
StreamInput in = out.bytes().streamInput();
|
StreamInput in = out.bytes().streamInput();
|
||||||
|
in.setVersion(version);
|
||||||
return in.readException();
|
return in.readException();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -769,6 +778,7 @@ public class ExceptionSerializationTests extends ESTestCase {
|
||||||
ids.put(144, org.elasticsearch.cluster.NotMasterException.class);
|
ids.put(144, org.elasticsearch.cluster.NotMasterException.class);
|
||||||
ids.put(145, org.elasticsearch.ElasticsearchStatusException.class);
|
ids.put(145, org.elasticsearch.ElasticsearchStatusException.class);
|
||||||
ids.put(146, org.elasticsearch.tasks.TaskCancelledException.class);
|
ids.put(146, org.elasticsearch.tasks.TaskCancelledException.class);
|
||||||
|
ids.put(147, org.elasticsearch.env.ShardLockObtainFailedException.class);
|
||||||
|
|
||||||
Map<Class<? extends ElasticsearchException>, Integer> reverse = new HashMap<>();
|
Map<Class<? extends ElasticsearchException>, Integer> reverse = new HashMap<>();
|
||||||
for (Map.Entry<Integer, Class<? extends ElasticsearchException>> entry : ids.entrySet()) {
|
for (Map.Entry<Integer, Class<? extends ElasticsearchException>> entry : ids.entrySet()) {
|
||||||
|
@ -826,4 +836,28 @@ public class ExceptionSerializationTests extends ESTestCase {
|
||||||
assertEquals(ex.status(), e.status());
|
assertEquals(ex.status(), e.status());
|
||||||
assertEquals(RestStatus.TOO_MANY_REQUESTS, e.status());
|
assertEquals(RestStatus.TOO_MANY_REQUESTS, e.status());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testShardLockObtainFailedException() throws IOException {
|
||||||
|
ShardId shardId = new ShardId("foo", "_na_", 1);
|
||||||
|
ShardLockObtainFailedException orig = new ShardLockObtainFailedException(shardId, "boom");
|
||||||
|
Version version = VersionUtils.randomVersionBetween(random(),
|
||||||
|
Version.V_5_0_0, Version.CURRENT);
|
||||||
|
if (version.before(ElasticsearchException.V_5_1_0_UNRELEASED)) {
|
||||||
|
// remove this once 5_1_0 is released randomVersionBetween asserts that this version is in the constant table..
|
||||||
|
version = ElasticsearchException.V_5_1_0_UNRELEASED;
|
||||||
|
}
|
||||||
|
ShardLockObtainFailedException ex = serialize(orig, version);
|
||||||
|
assertEquals(orig.getMessage(), ex.getMessage());
|
||||||
|
assertEquals(orig.getShardId(), ex.getShardId());
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testBWCShardLockObtainFailedException() throws IOException {
|
||||||
|
ShardId shardId = new ShardId("foo", "_na_", 1);
|
||||||
|
ShardLockObtainFailedException orig = new ShardLockObtainFailedException(shardId, "boom");
|
||||||
|
Exception ex = serialize((Exception)orig, Version.V_5_0_0);
|
||||||
|
assertThat(ex, instanceOf(NotSerializableExceptionWrapper.class));
|
||||||
|
assertEquals("shard_lock_obtain_failed_exception: [foo][1]: boom", ex.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -284,6 +284,7 @@ public class VersionTests extends ESTestCase {
|
||||||
assertUnknownVersion(OsStats.V_5_1_0); // once we released 5.1.0 and it's added to Version.java we need to remove this constant
|
assertUnknownVersion(OsStats.V_5_1_0); // once we released 5.1.0 and it's added to Version.java we need to remove this constant
|
||||||
assertUnknownVersion(QueryStringQueryBuilder.V_5_1_0_UNRELEASED);
|
assertUnknownVersion(QueryStringQueryBuilder.V_5_1_0_UNRELEASED);
|
||||||
assertUnknownVersion(SimpleQueryStringBuilder.V_5_1_0_UNRELEASED);
|
assertUnknownVersion(SimpleQueryStringBuilder.V_5_1_0_UNRELEASED);
|
||||||
|
assertUnknownVersion(ElasticsearchException.V_5_1_0_UNRELEASED);
|
||||||
// once we released 5.0.0 and it's added to Version.java we need to remove this constant
|
// once we released 5.0.0 and it's added to Version.java we need to remove this constant
|
||||||
assertUnknownVersion(Script.V_5_1_0_UNRELEASED);
|
assertUnknownVersion(Script.V_5_1_0_UNRELEASED);
|
||||||
// once we released 5.0.0 and it's added to Version.java we need to remove this constant
|
// once we released 5.0.0 and it's added to Version.java we need to remove this constant
|
||||||
|
|
Loading…
Reference in New Issue