This is an automated email from the ASF dual-hosted git repository. ibessonov pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/ignite-3.git
The following commit(s) were added to refs/heads/main by this push: new 9282bda9b9 IGNITE-20803 Split ActionRequest into 2 interfaces (#2814) 9282bda9b9 is described below commit 9282bda9b982229ec714f93c3839f75a8dd329f4 Author: Ivan Bessonov <bessonov...@gmail.com> AuthorDate: Wed Nov 8 13:15:47 2023 +0300 IGNITE-20803 Split ActionRequest into 2 interfaces (#2814) --- .../ignite/internal/raft/RaftGroupServiceImpl.java | 19 +++++++++---- .../apache/ignite/raft/jraft/RaftMessageGroup.java | 14 +++++++--- .../ignite/raft/jraft/rpc/ActionRequest.java | 17 +----------- .../{ActionRequest.java => ReadActionRequest.java} | 21 ++++++--------- ...{ActionRequest.java => WriteActionRequest.java} | 24 +++++------------ .../jraft/rpc/impl/ActionRequestProcessor.java | 21 ++++++++++----- .../raft/jraft/rpc/impl/IgniteRpcServer.java | 31 +++++++++++++++------- .../ignite/internal/raft/RaftGroupServiceTest.java | 3 ++- .../raftsnapshot/ItTableRaftSnapshotsTest.java | 6 ++--- .../internal/sql/engine/ItBuildIndexTest.java | 6 ++--- .../schema/CheckCatalogVersionOnActionRequest.java | 7 ++++- .../CheckCatalogVersionOnActionRequestTest.java | 16 +++++------ 12 files changed, 97 insertions(+), 88 deletions(-) diff --git a/modules/raft/src/main/java/org/apache/ignite/internal/raft/RaftGroupServiceImpl.java b/modules/raft/src/main/java/org/apache/ignite/internal/raft/RaftGroupServiceImpl.java index 5b3eaaab35..4e36c5aa67 100644 --- a/modules/raft/src/main/java/org/apache/ignite/internal/raft/RaftGroupServiceImpl.java +++ b/modules/raft/src/main/java/org/apache/ignite/internal/raft/RaftGroupServiceImpl.java @@ -449,11 +449,20 @@ public class RaftGroupServiceImpl implements RaftGroupService { return refreshLeader().thenCompose(res -> run(cmd)); } - Function<Peer, ActionRequest> requestFactory = targetPeer -> factory.actionRequest() - .command(cmd) - .groupId(groupId) - .readOnlySafe(true) - .build(); + Function<Peer, ActionRequest> requestFactory; + + if (cmd instanceof WriteCommand) { + requestFactory = targetPeer -> factory.writeActionRequest() + .groupId(groupId) + .command((WriteCommand) cmd) + .build(); + } else { + requestFactory = targetPeer -> factory.readActionRequest() + .groupId(groupId) + .command((ReadCommand) cmd) + .readOnlySafe(true) + .build(); + } return this.<ActionResponse>sendWithRetry(leader, requestFactory) .thenApply(resp -> (R) resp.result()); diff --git a/modules/raft/src/main/java/org/apache/ignite/raft/jraft/RaftMessageGroup.java b/modules/raft/src/main/java/org/apache/ignite/raft/jraft/RaftMessageGroup.java index 1f407204ce..75266aba7a 100644 --- a/modules/raft/src/main/java/org/apache/ignite/raft/jraft/RaftMessageGroup.java +++ b/modules/raft/src/main/java/org/apache/ignite/raft/jraft/RaftMessageGroup.java @@ -19,10 +19,11 @@ package org.apache.ignite.raft.jraft; import org.apache.ignite.network.annotations.MessageGroup; import org.apache.ignite.raft.jraft.entity.RaftOutter; -import org.apache.ignite.raft.jraft.rpc.ActionRequest; import org.apache.ignite.raft.jraft.rpc.ActionResponse; import org.apache.ignite.raft.jraft.rpc.CliRequests; +import org.apache.ignite.raft.jraft.rpc.ReadActionRequest; import org.apache.ignite.raft.jraft.rpc.RpcRequests; +import org.apache.ignite.raft.jraft.rpc.WriteActionRequest; /** * Message group for the Raft module. @@ -178,13 +179,18 @@ public class RaftMessageGroup { */ public static final class RpcActionMessageGroup { /** - * Message type for {@link ActionRequest}. + * Message type for {@link ReadActionRequest}. */ - public static final short ACTION_REQUEST = 4000; + public static final short READ_ACTION_REQUEST = 4000; + + /** + * Message type for {@link WriteActionRequest}. + */ + public static final short WRITE_ACTION_REQUEST = 4001; /** * Message type for {@link ActionResponse}. */ - public static final short ACTION_RESPONSE = 4001; + public static final short ACTION_RESPONSE = 4002; } } diff --git a/modules/raft/src/main/java/org/apache/ignite/raft/jraft/rpc/ActionRequest.java b/modules/raft/src/main/java/org/apache/ignite/raft/jraft/rpc/ActionRequest.java index 9659be3992..1a3cc992dc 100644 --- a/modules/raft/src/main/java/org/apache/ignite/raft/jraft/rpc/ActionRequest.java +++ b/modules/raft/src/main/java/org/apache/ignite/raft/jraft/rpc/ActionRequest.java @@ -17,27 +17,12 @@ package org.apache.ignite.raft.jraft.rpc; -import org.apache.ignite.network.annotations.Transferable; -import org.apache.ignite.internal.raft.Command; -import org.apache.ignite.raft.jraft.RaftMessageGroup; - /** - * Submit an action to a replication group. + * Common interface for {@link ReadActionRequest} and {@link WriteActionRequest}. */ -@Transferable(RaftMessageGroup.RpcActionMessageGroup.ACTION_REQUEST) public interface ActionRequest extends Message { /** * @return Group id. */ String groupId(); - - /** - * @return Action's command. - */ - Command command(); - - /** - * @return {@code True} for linearizable reading. - */ - boolean readOnlySafe(); } diff --git a/modules/raft/src/main/java/org/apache/ignite/raft/jraft/rpc/ActionRequest.java b/modules/raft/src/main/java/org/apache/ignite/raft/jraft/rpc/ReadActionRequest.java similarity index 69% copy from modules/raft/src/main/java/org/apache/ignite/raft/jraft/rpc/ActionRequest.java copy to modules/raft/src/main/java/org/apache/ignite/raft/jraft/rpc/ReadActionRequest.java index 9659be3992..a6a754e7d8 100644 --- a/modules/raft/src/main/java/org/apache/ignite/raft/jraft/rpc/ActionRequest.java +++ b/modules/raft/src/main/java/org/apache/ignite/raft/jraft/rpc/ReadActionRequest.java @@ -17,27 +17,22 @@ package org.apache.ignite.raft.jraft.rpc; +import org.apache.ignite.internal.raft.ReadCommand; import org.apache.ignite.network.annotations.Transferable; -import org.apache.ignite.internal.raft.Command; -import org.apache.ignite.raft.jraft.RaftMessageGroup; +import org.apache.ignite.raft.jraft.RaftMessageGroup.RpcActionMessageGroup; /** - * Submit an action to a replication group. + * Submit a read action to a replication group. */ -@Transferable(RaftMessageGroup.RpcActionMessageGroup.ACTION_REQUEST) -public interface ActionRequest extends Message { +@Transferable(RpcActionMessageGroup.READ_ACTION_REQUEST) +public interface ReadActionRequest extends ActionRequest { /** - * @return Group id. + * Returns an action's command. */ - String groupId(); + ReadCommand command(); /** - * @return Action's command. - */ - Command command(); - - /** - * @return {@code True} for linearizable reading. + * Returns {@code True} for linearizable reading. */ boolean readOnlySafe(); } diff --git a/modules/raft/src/main/java/org/apache/ignite/raft/jraft/rpc/ActionRequest.java b/modules/raft/src/main/java/org/apache/ignite/raft/jraft/rpc/WriteActionRequest.java similarity index 65% copy from modules/raft/src/main/java/org/apache/ignite/raft/jraft/rpc/ActionRequest.java copy to modules/raft/src/main/java/org/apache/ignite/raft/jraft/rpc/WriteActionRequest.java index 9659be3992..14ef3852e6 100644 --- a/modules/raft/src/main/java/org/apache/ignite/raft/jraft/rpc/ActionRequest.java +++ b/modules/raft/src/main/java/org/apache/ignite/raft/jraft/rpc/WriteActionRequest.java @@ -17,27 +17,17 @@ package org.apache.ignite.raft.jraft.rpc; +import org.apache.ignite.internal.raft.WriteCommand; import org.apache.ignite.network.annotations.Transferable; -import org.apache.ignite.internal.raft.Command; -import org.apache.ignite.raft.jraft.RaftMessageGroup; +import org.apache.ignite.raft.jraft.RaftMessageGroup.RpcActionMessageGroup; /** - * Submit an action to a replication group. + * Submit a write action to a replication group. */ -@Transferable(RaftMessageGroup.RpcActionMessageGroup.ACTION_REQUEST) -public interface ActionRequest extends Message { +@Transferable(RpcActionMessageGroup.WRITE_ACTION_REQUEST) +public interface WriteActionRequest extends ActionRequest { /** - * @return Group id. + * Returns an action's command. */ - String groupId(); - - /** - * @return Action's command. - */ - Command command(); - - /** - * @return {@code True} for linearizable reading. - */ - boolean readOnlySafe(); + WriteCommand command(); } diff --git a/modules/raft/src/main/java/org/apache/ignite/raft/jraft/rpc/impl/ActionRequestProcessor.java b/modules/raft/src/main/java/org/apache/ignite/raft/jraft/rpc/impl/ActionRequestProcessor.java index cd320381b1..02273d94e9 100644 --- a/modules/raft/src/main/java/org/apache/ignite/raft/jraft/rpc/impl/ActionRequestProcessor.java +++ b/modules/raft/src/main/java/org/apache/ignite/raft/jraft/rpc/impl/ActionRequestProcessor.java @@ -42,9 +42,11 @@ import org.apache.ignite.raft.jraft.error.RaftError; import org.apache.ignite.raft.jraft.rpc.ActionRequest; import org.apache.ignite.raft.jraft.rpc.Message; import org.apache.ignite.raft.jraft.rpc.RaftRpcFactory; +import org.apache.ignite.raft.jraft.rpc.ReadActionRequest; import org.apache.ignite.raft.jraft.rpc.RpcContext; import org.apache.ignite.raft.jraft.rpc.RpcProcessor; import org.apache.ignite.raft.jraft.rpc.RpcRequests; +import org.apache.ignite.raft.jraft.rpc.WriteActionRequest; import org.apache.ignite.raft.jraft.util.BytesUtil; import org.apache.ignite.raft.jraft.util.Marshaller; @@ -82,25 +84,30 @@ public class ActionRequestProcessor implements RpcProcessor<ActionRequest> { JraftServerImpl.DelegatingStateMachine fsm = (JraftServerImpl.DelegatingStateMachine) node.getOptions().getFsm(); - if (request.command() instanceof WriteCommand) { + if (request instanceof WriteActionRequest) { if (fsm.getListener() instanceof BeforeApplyHandler) { synchronized (groupIdSyncMonitor(request.groupId())) { callOnBeforeApply(request, fsm); - applyWrite(node, request, rpcCtx); + applyWrite(node, (WriteActionRequest) request, rpcCtx); } } else { - applyWrite(node, request, rpcCtx); + applyWrite(node, (WriteActionRequest) request, rpcCtx); } } else { if (fsm.getListener() instanceof BeforeApplyHandler) { callOnBeforeApply(request, fsm); } - applyRead(node, request, rpcCtx); + applyRead(node, (ReadActionRequest) request, rpcCtx); } } + private static void callOnBeforeApply(ActionRequest request, DelegatingStateMachine fsm) { - ((BeforeApplyHandler) fsm.getListener()).onBeforeApply(request.command()); + Command command = request instanceof WriteActionRequest + ? ((WriteActionRequest) request).command() + : ((ReadActionRequest) request).command(); + + ((BeforeApplyHandler) fsm.getListener()).onBeforeApply(command); } private Object groupIdSyncMonitor(String groupId) { @@ -114,7 +121,7 @@ public class ActionRequestProcessor implements RpcProcessor<ActionRequest> { * @param request The request. * @param rpcCtx The context. */ - private void applyWrite(Node node, ActionRequest request, RpcContext rpcCtx) { + private void applyWrite(Node node, WriteActionRequest request, RpcContext rpcCtx) { Marshaller commandsMarshaller = node.getOptions().getCommandsMarshaller(); assert commandsMarshaller != null; @@ -146,7 +153,7 @@ public class ActionRequestProcessor implements RpcProcessor<ActionRequest> { * @param request The request. * @param rpcCtx The context. */ - private void applyRead(Node node, ActionRequest request, RpcContext rpcCtx) { + private void applyRead(Node node, ReadActionRequest request, RpcContext rpcCtx) { if (request.readOnlySafe()) { node.readIndex(BytesUtil.EMPTY_BYTES, new ReadIndexClosure() { @Override public void run(Status status, long index, byte[] reqCtx) { diff --git a/modules/raft/src/main/java/org/apache/ignite/raft/jraft/rpc/impl/IgniteRpcServer.java b/modules/raft/src/main/java/org/apache/ignite/raft/jraft/rpc/impl/IgniteRpcServer.java index c4e0c8e1f6..49bff47ece 100644 --- a/modules/raft/src/main/java/org/apache/ignite/raft/jraft/rpc/impl/IgniteRpcServer.java +++ b/modules/raft/src/main/java/org/apache/ignite/raft/jraft/rpc/impl/IgniteRpcServer.java @@ -155,7 +155,6 @@ public class IgniteRpcServer implements RpcServer<Void> { /** {@inheritDoc} */ @Override public void onReceived(NetworkMessage message, String senderConsistentId, @Nullable Long correlationId) { Class<? extends NetworkMessage> cls = message.getClass(); - RpcProcessor<NetworkMessage> prc = processors.get(cls.getName()); ClusterNode sender = clusterService().topologyService().getByConsistentId(senderConsistentId); @@ -163,15 +162,7 @@ public class IgniteRpcServer implements RpcServer<Void> { throw new UnresolvableConsistentIdException("No node by consistent ID " + senderConsistentId); } - // TODO asch cache mapping https://issues.apache.org/jira/browse/IGNITE-14832 - if (prc == null) { - for (Class<?> iface : cls.getInterfaces()) { - prc = processors.get(iface.getName()); - - if (prc != null) - break; - } - } + RpcProcessor<NetworkMessage> prc = getProcessor(cls, cls); if (prc == null) return; @@ -197,6 +188,26 @@ public class IgniteRpcServer implements RpcServer<Void> { LOG.warn("A request execution was rejected [sender={} req={} reason={}]", sender, S.toString(message), e.getMessage()); } } + + private @Nullable RpcProcessor<NetworkMessage> getProcessor(Class<?> origin, Class<?> cls) { + RpcProcessor<NetworkMessage> prc = processors.get(cls.getName()); + + if (prc != null) { + return prc; + } + + for (Class<?> iface : cls.getInterfaces()) { + prc = getProcessor(origin, iface); + + if (prc != null) { + processors.putIfAbsent(origin.getName(), prc); + + return prc; + } + } + + return null; + } } /** diff --git a/modules/raft/src/test/java/org/apache/ignite/internal/raft/RaftGroupServiceTest.java b/modules/raft/src/test/java/org/apache/ignite/internal/raft/RaftGroupServiceTest.java index 04f1f68b68..f7a56f21ed 100644 --- a/modules/raft/src/test/java/org/apache/ignite/internal/raft/RaftGroupServiceTest.java +++ b/modules/raft/src/test/java/org/apache/ignite/internal/raft/RaftGroupServiceTest.java @@ -86,6 +86,7 @@ import org.apache.ignite.raft.jraft.rpc.CliRequests.TransferLeaderRequest; import org.apache.ignite.raft.jraft.rpc.RaftRpcFactory; import org.apache.ignite.raft.jraft.rpc.RpcRequests.ErrorResponse; import org.apache.ignite.raft.jraft.rpc.RpcRequests.ReadIndexRequest; +import org.apache.ignite.raft.jraft.rpc.WriteActionRequest; import org.apache.ignite.raft.jraft.rpc.impl.RaftException; import org.jetbrains.annotations.Nullable; import org.junit.jupiter.api.AfterEach; @@ -617,7 +618,7 @@ public class RaftGroupServiceTest extends BaseIgniteAbstractTest { argThat(new ArgumentMatcher<ActionRequest>() { @Override public boolean matches(ActionRequest arg) { - return arg.command() instanceof TestWriteCommand; + return arg instanceof WriteActionRequest && ((WriteActionRequest) arg).command() instanceof TestWriteCommand; } }), anyLong() diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/raftsnapshot/ItTableRaftSnapshotsTest.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/raftsnapshot/ItTableRaftSnapshotsTest.java index 2c97b2b7b4..82cd9629a7 100644 --- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/raftsnapshot/ItTableRaftSnapshotsTest.java +++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/raftsnapshot/ItTableRaftSnapshotsTest.java @@ -83,7 +83,6 @@ import org.apache.ignite.raft.jraft.RaftMessagesFactory; import org.apache.ignite.raft.jraft.Status; import org.apache.ignite.raft.jraft.core.Replicator; import org.apache.ignite.raft.jraft.error.RaftError; -import org.apache.ignite.raft.jraft.rpc.ActionRequest; import org.apache.ignite.raft.jraft.rpc.Message; import org.apache.ignite.raft.jraft.rpc.RaftRpcFactory; import org.apache.ignite.raft.jraft.rpc.RaftServerService; @@ -92,6 +91,7 @@ import org.apache.ignite.raft.jraft.rpc.RpcRequestClosure; import org.apache.ignite.raft.jraft.rpc.RpcRequestProcessor; import org.apache.ignite.raft.jraft.rpc.RpcRequests.AppendEntriesRequest; import org.apache.ignite.raft.jraft.rpc.RpcServer; +import org.apache.ignite.raft.jraft.rpc.WriteActionRequest; import org.apache.ignite.raft.jraft.rpc.impl.IgniteRpcServer; import org.apache.ignite.raft.jraft.rpc.impl.core.AppendEntriesRequestProcessor; import org.apache.ignite.raft.jraft.storage.snapshot.SnapshotExecutorImpl; @@ -667,8 +667,8 @@ class ItTableRaftSnapshotsTest extends IgniteIntegrationTest { try { prepareClusterForInstallingSnapshotToNode2(DEFAULT_STORAGE_ENGINE, theCluster -> { BiPredicate<String, NetworkMessage> dropSafeTimeUntilSecondInstallSnapshotRequestIsProcessed = (recipientId, message) -> - message instanceof ActionRequest - && ((ActionRequest) message).command() instanceof SafeTimeSyncCommand + message instanceof WriteActionRequest + && ((WriteActionRequest) message).command() instanceof SafeTimeSyncCommand && !snapshotInstallFailedDueToIdenticalRetry.get(); theCluster.node(0).dropMessages( diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItBuildIndexTest.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItBuildIndexTest.java index 151b1d6d38..21bfa15b83 100644 --- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItBuildIndexTest.java +++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItBuildIndexTest.java @@ -48,7 +48,7 @@ import org.apache.ignite.internal.sql.BaseSqlIntegrationTest; import org.apache.ignite.internal.table.TableViewInternal; import org.apache.ignite.internal.table.distributed.command.BuildIndexCommand; import org.apache.ignite.network.NetworkMessage; -import org.apache.ignite.raft.jraft.rpc.ActionRequest; +import org.apache.ignite.raft.jraft.rpc.WriteActionRequest; import org.jetbrains.annotations.Nullable; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Assertions; @@ -241,8 +241,8 @@ public class ItBuildIndexTest extends BaseSqlIntegrationTest { boolean dropBuildIndexCommand ) { return (nodeConsistentId, networkMessage) -> { - if (networkMessage instanceof ActionRequest) { - Command command = ((ActionRequest) networkMessage).command(); + if (networkMessage instanceof WriteActionRequest) { + Command command = ((WriteActionRequest) networkMessage).command(); if (command instanceof BuildIndexCommand) { sendBuildIndexCommandFuture.complete(((BuildIndexCommand) command).indexId()); diff --git a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/schema/CheckCatalogVersionOnActionRequest.java b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/schema/CheckCatalogVersionOnActionRequest.java index c821e29883..47b90121bb 100644 --- a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/schema/CheckCatalogVersionOnActionRequest.java +++ b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/schema/CheckCatalogVersionOnActionRequest.java @@ -35,6 +35,7 @@ import org.apache.ignite.raft.jraft.rpc.ActionRequest; import org.apache.ignite.raft.jraft.rpc.Message; import org.apache.ignite.raft.jraft.rpc.RaftRpcFactory; import org.apache.ignite.raft.jraft.rpc.RpcContext; +import org.apache.ignite.raft.jraft.rpc.WriteActionRequest; import org.apache.ignite.raft.jraft.rpc.impl.ActionRequestInterceptor; import org.jetbrains.annotations.Nullable; @@ -64,7 +65,11 @@ public class CheckCatalogVersionOnActionRequest implements ActionRequestIntercep return errorIfNotLeader; } - Command command = request.command(); + if (!(request instanceof WriteActionRequest)) { + return null; + } + + Command command = ((WriteActionRequest) request).command(); if (command instanceof CatalogVersionAware) { int requiredCatalogVersion = ((CatalogVersionAware) command).requiredCatalogVersion(); diff --git a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/schema/CheckCatalogVersionOnActionRequestTest.java b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/schema/CheckCatalogVersionOnActionRequestTest.java index bcb5c62045..aa7953c418 100644 --- a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/schema/CheckCatalogVersionOnActionRequestTest.java +++ b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/schema/CheckCatalogVersionOnActionRequestTest.java @@ -31,7 +31,7 @@ import java.util.Arrays; import java.util.UUID; import java.util.stream.Stream; import org.apache.ignite.internal.catalog.CatalogService; -import org.apache.ignite.internal.raft.Command; +import org.apache.ignite.internal.raft.WriteCommand; import org.apache.ignite.internal.replicator.message.ReplicaMessagesFactory; import org.apache.ignite.internal.table.distributed.TableMessagesFactory; import org.apache.ignite.internal.testframework.BaseIgniteAbstractTest; @@ -95,7 +95,7 @@ class CheckCatalogVersionOnActionRequestTest extends BaseIgniteAbstractTest { @Test void delegatesWhenCommandHasNoRequiredCatalogVersion() { - ActionRequest request = raftMessagesFactory.actionRequest() + ActionRequest request = raftMessagesFactory.writeActionRequest() .groupId("test") .command(commandWithoutRequiredCatalogVersion()) .build(); @@ -103,7 +103,7 @@ class CheckCatalogVersionOnActionRequestTest extends BaseIgniteAbstractTest { assertThat(interceptor.intercept(rpcContext, request), is(nullValue())); } - private Command commandWithoutRequiredCatalogVersion() { + private WriteCommand commandWithoutRequiredCatalogVersion() { return replicaMessagesFactory.safeTimeSyncCommand().build(); } @@ -111,7 +111,7 @@ class CheckCatalogVersionOnActionRequestTest extends BaseIgniteAbstractTest { void delegatesWhenHavingEnoughMetadata() { when(catalogService.latestCatalogVersion()).thenReturn(5); - ActionRequest request = raftMessagesFactory.actionRequest() + ActionRequest request = raftMessagesFactory.writeActionRequest() .groupId("test") .command(commandWithRequiredCatalogVersion(3)) .build(); @@ -119,7 +119,7 @@ class CheckCatalogVersionOnActionRequestTest extends BaseIgniteAbstractTest { assertThat(interceptor.intercept(rpcContext, request), is(nullValue())); } - private Command commandWithRequiredCatalogVersion(int requiredVersion) { + private WriteCommand commandWithRequiredCatalogVersion(int requiredVersion) { return tableMessagesFactory.updateCommand() .tablePartitionId(tableMessagesFactory.tablePartitionIdMessage().build()) .txId(UUID.randomUUID()) @@ -133,7 +133,7 @@ class CheckCatalogVersionOnActionRequestTest extends BaseIgniteAbstractTest { void returnsErrorCodeBusyWhenNotHavingEnoughMetadata() { when(catalogService.latestCatalogVersion()).thenReturn(5); - ActionRequest request = raftMessagesFactory.actionRequest() + ActionRequest request = raftMessagesFactory.writeActionRequest() .groupId("test") .command(commandWithRequiredCatalogVersion(6)) .build(); @@ -154,7 +154,7 @@ class CheckCatalogVersionOnActionRequestTest extends BaseIgniteAbstractTest { void checksLeadershipBeforeCheckingMetadataWhenNotLeaderAndNotTransferring(State state) { when(node.getNodeState()).thenReturn(state); - ActionRequest request = raftMessagesFactory.actionRequest() + ActionRequest request = raftMessagesFactory.writeActionRequest() .groupId("test") .command(commandWithRequiredCatalogVersion(6)) .build(); @@ -180,7 +180,7 @@ class CheckCatalogVersionOnActionRequestTest extends BaseIgniteAbstractTest { void checksLeadershipBeforeCheckingMetadataWhenTransferring() { when(node.getNodeState()).thenReturn(State.STATE_TRANSFERRING); - ActionRequest request = raftMessagesFactory.actionRequest() + ActionRequest request = raftMessagesFactory.writeActionRequest() .groupId("test") .command(commandWithRequiredCatalogVersion(6)) .build();