Skip to content

IGNITE-28441 Add lightweight method for getting local node information#7924

Merged
sashapolo merged 1 commit into
apache:mainfrom
gridgain:ignite-28441
Apr 3, 2026
Merged

IGNITE-28441 Add lightweight method for getting local node information#7924
sashapolo merged 1 commit into
apache:mainfrom
gridgain:ignite-28441

Conversation

@sashapolo
Copy link
Copy Markdown
Contributor

https://issues.apache.org/jira/browse/IGNITE-28441

Thank you for submitting the pull request.

To streamline the review process of the patch and ensure better code quality
we ask both an author and a reviewer to verify the following:

The Review Checklist

  • Formal criteria: TC status, codestyle, mandatory documentation. Also make sure to complete the following:
    - There is a single JIRA ticket related to the pull request.
    - The web-link to the pull request is attached to the JIRA ticket.
    - The JIRA ticket has the Patch Available state.
    - The description of the JIRA ticket explains WHAT was made, WHY and HOW.
    - The pull request title is treated as the final commit message. The following pattern must be used: IGNITE-XXXX Change summary where XXXX - number of JIRA issue.
  • Design: new code conforms with the design principles of the components it is added to.
  • Patch quality: patch cannot be split into smaller pieces, its size must be reasonable.
  • Code quality: code is clean and readable, necessary developer documentation is added if needed.
  • Tests code quality: test set covers positive/negative scenarios, happy/edge cases. Tests are effective in terms of execution time and resources.

Notes

Copilot AI review requested due to automatic review settings April 2, 2026 19:02
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR introduces a lightweight API to fetch local node information (ClusterService.staticLocalNode()) and refactors multiple components/tests to use it instead of TopologyService.localMember() / ClusterService.nodeName(), reducing topology lookups and removing unnecessary laziness.

Changes:

  • Replace ClusterService.nodeName() with ClusterService.staticLocalNode() and update call sites across modules.
  • Refactor several services/components to accept an InternalClusterNode localNode directly (transactions, table, raft, compute, network, metastorage, etc.).
  • Simplify local-node-dependent helpers by removing Lazy<>/NodeIdSupplier where the value is stable.

Reviewed changes

Copilot reviewed 132 out of 132 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
modules/transactions/src/test/java/org/apache/ignite/internal/tx/impl/TransactionStateResolverTest.java Tests updated to pass InternalClusterNode directly (no Lazy).
modules/transactions/src/test/java/org/apache/ignite/internal/tx/TxManagerTest.java Tests switched to clusterService.staticLocalNode().
modules/transactions/src/test/java/org/apache/ignite/internal/tx/TxCleanupTest.java Test stubbing adjusted for removal of localMember() usage.
modules/transactions/src/main/java/org/apache/ignite/internal/tx/impl/WriteIntentSwitchProcessor.java Uses injected localNode instead of TopologyService.
modules/transactions/src/main/java/org/apache/ignite/internal/tx/impl/TxManagerImpl.java Inject localNode and remove dependence on topology lookups for local identity.
modules/transactions/src/main/java/org/apache/ignite/internal/tx/impl/TransactionStateResolver.java Replace Lazy<InternalClusterNode> with direct InternalClusterNode.
modules/transactions/src/main/java/org/apache/ignite/internal/tx/impl/TransactionIdGenerator.java Remove NodeIdSupplier indirection; store stable nodeId value.
modules/transactions/src/main/java/org/apache/ignite/internal/tx/impl/NodeIdSupplier.java Deleted; replaced by direct nodeId usage.
modules/table/src/testFixtures/java/org/apache/ignite/internal/table/impl/DummyInternalTableImpl.java Test fixture stubs staticLocalNode().
modules/table/src/testFixtures/java/org/apache/ignite/distributed/ItTxTestCluster.java Cluster test fixture updated to use staticLocalNode() and pass nodes to constructors.
modules/table/src/test/java/org/apache/ignite/internal/table/distributed/storage/InternalTableEstimatedSizeTest.java Use staticLocalNode() for local node in setup.
modules/table/src/test/java/org/apache/ignite/internal/table/distributed/replication/ZonePartitionReplicaListenerTest.java Remove localMember() stubbing; pass InternalClusterNode directly.
modules/table/src/test/java/org/apache/ignite/internal/table/distributed/replication/PartitionReplicaListenerTest.java Remove localMember() stubbing; pass InternalClusterNode directly.
modules/table/src/test/java/org/apache/ignite/internal/table/distributed/raft/PartitionCommandListenerTest.java Use staticLocalNode() for id/name/address in tests.
modules/table/src/test/java/org/apache/ignite/internal/table/distributed/TableManagerTest.java Pass staticLocalNode() to TableManager.
modules/table/src/test/java/org/apache/ignite/internal/table/distributed/TableManagerRecoveryTest.java Pass local node into managers; stubbing updated to staticLocalNode().
modules/table/src/test/java/org/apache/ignite/internal/table/TableKvOperationsMockedTest.java Tests now use staticLocalNode().address().
modules/table/src/test/java/org/apache/ignite/internal/table/InteropOperationsTest.java Use staticLocalNode().address() for setup.
modules/table/src/main/java/org/apache/ignite/internal/table/distributed/disaster/DisasterRecoveryManager.java Inject localNode and use it for local identity.
modules/table/src/main/java/org/apache/ignite/internal/table/distributed/TablePartitionResourcesFactory.java Pass localNode through to partition/replica components.
modules/table/src/main/java/org/apache/ignite/internal/table/distributed/TableManager.java Accept and forward localNode.
modules/table/src/integrationTest/java/org/apache/ignite/internal/table/distributed/disaster/ItHighAvailablePartitionsRecoveryTest.java Use staticLocalNode() for expected node set.
modules/table/src/integrationTest/java/org/apache/ignite/internal/table/ItColocationTest.java Stubbing updated to staticLocalNode().
modules/table/src/integrationTest/java/org/apache/ignite/distributed/ReplicasSafeTimePropagationTest.java Use staticLocalNode().name() for raft/log components.
modules/table/src/integrationTest/java/org/apache/ignite/distributed/ReplicaUnavailableTest.java Use staticLocalNode() for placement driver and request coordinator id.
modules/table/src/integrationTest/java/org/apache/ignite/distributed/ItTxStateLocalMapTest.java Use staticLocalNode() for coordinator and tx manager map key.
modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/framework/TestNode.java Use staticLocalNode() and pass localNode to services.
modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/framework/TestClusterService.java Implement staticLocalNode() for test cluster service.
modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/rel/TableScanNodeExecutionTest.java Use staticLocalNode() stubbing.
modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/rel/ExchangeExecutionTest.java Use staticLocalNode() for message service local sender.
modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/ExecutionServiceImplTest.java Execution service now constructed with InternalClusterNode.
modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/ExecutionServiceImpl.java Refactor to accept InternalClusterNode localNode instead of TopologyService.
modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/SqlQueryProcessor.java Use staticLocalNode() and pass local node to execution service.
modules/sql-engine/src/integrationTest/java/org/apache/ignite/internal/sql/engine/systemviews/ItTransactionsSystemViewTest.java Use staticLocalNode() for local member mapping.
modules/runner/src/testFixtures/java/org/apache/ignite/internal/table/NodeUtils.java Send messages using staticLocalNode() recipients.
modules/runner/src/main/java/org/apache/ignite/internal/app/IgniteImpl.java Use staticLocalNode() for IDs/names and to construct managers.
modules/runner/src/integrationTest/java/org/apache/ignite/internal/table/ItReplicasTest.java Use staticLocalNode() for sender/receiver InternalClusterNode.
modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItIgniteNodeRestartTest.java Use staticLocalNode().name() and pass local node to metastorage/zone/table managers.
modules/runner/src/integrationTest/java/org/apache/ignite/internal/configuration/storage/ItDistributedConfigurationStorageTest.java Use staticLocalNode() throughout node helpers.
modules/runner/src/integrationTest/java/org/apache/ignite/internal/configuration/ItDistributedConfigurationPropertiesTest.java Use staticLocalNode() throughout node helpers.
modules/replicator/src/testFixtures/java/org/apache/ignite/internal/raft/client/AbstractTopologyAwareGroupServiceTest.java Use staticLocalNode().name() for peer matching and log storage naming.
modules/replicator/src/test/java/org/apache/ignite/internal/replicator/ReplicaManagerTest.java Stub staticLocalNode() for local identity.
modules/replicator/src/main/java/org/apache/ignite/internal/replicator/ReplicaManager.java Use staticLocalNode() to get local node/id/consistentId.
modules/replicator/src/integrationTest/java/org/apache/ignite/internal/replicator/ItPlacementDriverReplicaSideTest.java Use staticLocalNode() for primary replica supplier and handlers.
modules/raft/src/test/java/org/apache/ignite/raft/jraft/rpc/IgniteRpcTest.java Use staticLocalNode().name() in diagnostics.
modules/raft/src/test/java/org/apache/ignite/internal/raft/client/PhysicalTopologyAwareRaftGroupServiceTest.java Use staticLocalNode().name() for peer matching/log naming.
modules/raft/src/test/java/org/apache/ignite/internal/raft/LozaTest.java Update test stubs to staticLocalNode() and use .name().
modules/raft/src/main/java/org/apache/ignite/raft/jraft/rpc/impl/IgniteRpcServer.java Use staticLocalNode().name() as local consistent id.
modules/raft/src/main/java/org/apache/ignite/internal/raft/server/impl/JraftServerImpl.java Replace nodeName()/localMember() with staticLocalNode().name().
modules/raft/src/main/java/org/apache/ignite/internal/raft/client/RaftGroupServiceImpl.java Logging now uses staticLocalNode().address().
modules/raft/src/main/java/org/apache/ignite/internal/raft/Loza.java Thread naming uses staticLocalNode().name().
modules/raft/src/integrationTest/java/org/apache/ignite/raft/server/JraftAbstractTest.java Use staticLocalNode().name() for log manager configuration.
modules/raft/src/integrationTest/java/org/apache/ignite/raft/server/ItSimpleCounterServerTest.java Use staticLocalNode() for server name and thread factory.
modules/raft/src/integrationTest/java/org/apache/ignite/raft/server/ItJraftServerTest.java Use staticLocalNode().name() for local peer.
modules/raft/src/integrationTest/java/org/apache/ignite/raft/server/ItJraftServerLogPathTest.java Use staticLocalNode().name() for log manager configuration.
modules/raft/src/integrationTest/java/org/apache/ignite/raft/server/ItJraftHlcServerTest.java Use staticLocalNode().name() for peer selection/tests.
modules/raft/src/integrationTest/java/org/apache/ignite/raft/server/ItJraftCounterServerTest.java Use staticLocalNode().name() across raft tests.
modules/raft/src/integrationTest/java/org/apache/ignite/raft/server/ItConnectionErrorTest.java Use staticLocalNode().name() for leader comparisons.
modules/raft/src/integrationTest/java/org/apache/ignite/internal/raft/ItRaftGroupServiceTest.java Use staticLocalNode().name() to identify node consistently.
modules/raft/src/integrationTest/java/org/apache/ignite/internal/raft/ItLozaTest.java Use staticLocalNode() for names and peer configuration.
modules/raft/src/integrationTest/java/org/apache/ignite/internal/raft/ItLearnersTest.java Use staticLocalNode().name() for raft directories/IDs.
modules/placement-driver/src/main/java/org/apache/ignite/internal/placementdriver/PlacementDriverManager.java Replace local-member lookups with staticLocalNode() and compare by id.
modules/placement-driver/src/integrationTest/java/org/apache/ignite/internal/placementdriver/PlacementDriverManagerTest.java Use staticLocalNode() for naming, metastorage, and assertions.
modules/placement-driver/src/integrationTest/java/org/apache/ignite/internal/placementdriver/MultiActorPlacementDriverTest.java Use staticLocalNode() for handlers, messaging, and log creation.
modules/partition-replicator/src/test/java/org/apache/ignite/internal/partition/replicator/raft/snapshot/outgoing/OutgoingSnapshotReaderTest.java Update snapshot storage construction to pass localNode.
modules/partition-replicator/src/test/java/org/apache/ignite/internal/partition/replicator/raft/snapshot/incoming/IncomingSnapshotCopierTest.java Update snapshot storage construction to pass localNode.
modules/partition-replicator/src/test/java/org/apache/ignite/internal/partition/replicator/raft/snapshot/PartitionSnapshotStorageTest.java Snapshot storage now requires localNode in tests.
modules/partition-replicator/src/test/java/org/apache/ignite/internal/partition/replicator/raft/snapshot/PartitionSnapshotStorageFactoryTest.java Snapshot storage now requires localNode in tests.
modules/partition-replicator/src/test/java/org/apache/ignite/internal/partition/replicator/ZoneResourcesManagerTest.java Pass localNode into ZoneResourcesManager.
modules/partition-replicator/src/test/java/org/apache/ignite/internal/partition/replicator/PartitionReplicaLifecycleManagerTest.java Stub staticLocalNode() and pass it into lifecycle manager.
modules/partition-replicator/src/main/java/org/apache/ignite/internal/partition/replicator/raft/snapshot/outgoing/OutgoingSnapshotReader.java Use snapshot storage’s localNodeName() helper.
modules/partition-replicator/src/main/java/org/apache/ignite/internal/partition/replicator/raft/snapshot/PartitionSnapshotStorage.java Persist localNode, expose localNodeName().
modules/partition-replicator/src/main/java/org/apache/ignite/internal/partition/replicator/ZoneResourcesManager.java Carry localNode into snapshot storage and resources.
modules/partition-replicator/src/main/java/org/apache/ignite/internal/partition/replicator/PartitionReplicaLifecycleManager.java Replace lazy local member lookup with injected localNode.
modules/partition-replicator/src/integrationTest/java/org/apache/ignite/internal/partition/replicator/raft/ItZonePartitionRaftListenerRecoveryTest.java Use staticLocalNode() for naming/ids and snapshot storage creation.
modules/partition-replicator/src/integrationTest/java/org/apache/ignite/internal/partition/replicator/fixtures/Node.java Use staticLocalNode() for metastorage/zone/table initialization.
modules/partition-replicator/src/integrationTest/java/org/apache/ignite/internal/partition/replicator/ItZoneInMemoryTest.java Use staticLocalNode().name() for raft peer ID.
modules/network/src/test/java/org/apache/ignite/internal/network/DefaultMessagingServiceTest.java Pass local node into messaging service constructor.
modules/network/src/main/java/org/apache/ignite/internal/network/scalecube/ScaleCubeClusterService.java Implement staticLocalNode() and pass local node into messaging.
modules/network/src/main/java/org/apache/ignite/internal/network/DefaultMessagingService.java Store injected localNode and use it for self-delivery sender.
modules/network/src/integrationTest/java/org/apache/ignite/internal/network/scalecube/ItScaleCubeNetworkMessagingTest.java Replace nodeName()/localMember() usages with staticLocalNode().
modules/network/src/integrationTest/java/org/apache/ignite/internal/network/scalecube/ItNodeRestartsTest.java Replace localMember() usage in assertions and send loop with staticLocalNode().
modules/network/src/integrationTest/java/org/apache/ignite/internal/network/scalecube/ItMulticastNodeFinderTest.java Replace localMember() usage in assertions with staticLocalNode().
modules/network-api/src/main/java/org/apache/ignite/internal/network/TopologyService.java Clarify localMember() vs staticLocalNode() semantics in API docs.
modules/network-api/src/main/java/org/apache/ignite/internal/network/ClusterService.java Introduce staticLocalNode() API (replacing nodeName()).
modules/metastorage/src/testFixtures/java/org/apache/ignite/internal/metastorage/impl/StandaloneMetaStorageManager.java Pass InternalClusterNode directly to metastorage manager.
modules/metastorage/src/test/java/org/apache/ignite/internal/metastorage/impl/MetaStorageManagerRecoveryTest.java Use mocked staticLocalNode() and pass it to metastorage manager.
modules/metastorage/src/test/java/org/apache/ignite/internal/metastorage/impl/MetaStorageLeaderElectionListenerTest.java Pass node name directly into leader election listener.
modules/metastorage/src/test/java/org/apache/ignite/internal/metastorage/impl/MetaStorageDeployWatchesCorrectnessTest.java Use staticLocalNode() stubbing and pass local node into manager.
modules/metastorage/src/main/java/org/apache/ignite/internal/metastorage/impl/MetaStorageManagerImpl.java Replace ClusterService dependency with injected InternalClusterNode localNode.
modules/metastorage/src/main/java/org/apache/ignite/internal/metastorage/impl/MetaStorageLeaderElectionListener.java Accept node name directly instead of ClusterService.
modules/metastorage/src/integrationTest/java/org/apache/ignite/internal/raft/service/ItAbstractListenerSnapshotTest.java Use staticLocalNode().name() for raft node id creation.
modules/metastorage/src/integrationTest/java/org/apache/ignite/internal/metastorage/server/raft/ItMetaStorageRaftGroupTest.java Replace nodeName() and localMember() calls with staticLocalNode().
modules/metastorage/src/integrationTest/java/org/apache/ignite/internal/metastorage/impl/ItMetaStorageWatchTest.java Replace nodeName() calls with staticLocalNode().name() and pass local node into manager.
modules/metastorage/src/integrationTest/java/org/apache/ignite/internal/metastorage/impl/ItMetaStorageServiceTest.java Replace nodeName()/localMember().id() with staticLocalNode().
modules/metastorage/src/integrationTest/java/org/apache/ignite/internal/metastorage/impl/ItMetaStorageServicePersistenceTest.java Replace nodeName()/localMember() with staticLocalNode().
modules/metastorage/src/integrationTest/java/org/apache/ignite/internal/metastorage/impl/ItMetaStorageMultipleNodesAbstractTest.java Replace nodeName() with staticLocalNode().name() and pass local node into manager.
modules/metastorage/src/integrationTest/java/org/apache/ignite/internal/metastorage/impl/ItMetaStorageManagerImplTest.java Replace nodeName() with staticLocalNode().name() and pass local node into manager.
modules/metastorage/src/integrationTest/java/org/apache/ignite/internal/metastorage/impl/ItIdempotentCommandCacheTest.java Replace nodeName() with staticLocalNode().name() across cluster helpers.
modules/index/src/test/java/org/apache/ignite/internal/index/IndexManagementUtilsTest.java Use staticLocalNode() instead of mocked topology local member.
modules/index/src/test/java/org/apache/ignite/internal/index/ChangeIndexStatusTaskTest.java Use staticLocalNode() for local node in tests.
modules/index/src/test/java/org/apache/ignite/internal/index/ChangeIndexStatusTaskControllerTest.java Use staticLocalNode() for local node in tests.
modules/index/src/main/java/org/apache/ignite/internal/index/IndexManagementUtils.java Use staticLocalNode() as the local node accessor.
modules/index/src/main/java/org/apache/ignite/internal/index/IndexBuildingManager.java Pass staticLocalNode() to tx components (no Lazy).
modules/distribution-zones/src/test/java/org/apache/ignite/internal/distributionzones/DataNodesManagerTest.java Update tests to construct DataNodesManager with InternalClusterNode.
modules/distribution-zones/src/test/java/org/apache/ignite/internal/distributionzones/BaseDistributionZoneManagerTest.java Update tests to construct DistributionZoneManager with InternalClusterNode.
modules/distribution-zones/src/main/java/org/apache/ignite/internal/distributionzones/DistributionZoneManager.java Replace nodeName/supplier with InternalClusterNode localNode.
modules/distribution-zones/src/main/java/org/apache/ignite/internal/distributionzones/DataNodesManager.java Replace lazy/supplier node id with injected InternalClusterNode.
modules/distribution-zones/src/integrationTest/java/org/apache/ignite/internal/rebalance/ItRebalanceDistributedTest.java Replace nodeName() usage with staticLocalNode().name(); pass local node to components.
modules/distribution-zones/src/integrationTest/java/org/apache/ignite/internal/distributionzones/ItIgniteDistributionZoneManagerNodeRestartTest.java Construct zone manager with staticLocalNode().
modules/compute/src/test/java/org/apache/ignite/internal/compute/executor/ComputeExecutorTest.java Compute executor now uses injected localNode.
modules/compute/src/test/java/org/apache/ignite/internal/compute/IgniteComputeImplTest.java Construct compute impl with localNode and remove localMember() stubbing.
modules/compute/src/test/java/org/apache/ignite/internal/compute/ComputeComponentImplTest.java Pass localNode to executor/component and stop stubbing localMember().
modules/compute/src/main/java/org/apache/ignite/internal/compute/messaging/ComputeMessaging.java Use injected localNode for self filtering.
modules/compute/src/main/java/org/apache/ignite/internal/compute/executor/ComputeExecutorImpl.java Use injected localNode in job execution metadata.
modules/compute/src/main/java/org/apache/ignite/internal/compute/IgniteComputeImpl.java Use injected localNode for local-target detection.
modules/compute/src/main/java/org/apache/ignite/internal/compute/ExecutionManager.java Use injected localNode.name() for cleaner naming.
modules/compute/src/main/java/org/apache/ignite/internal/compute/ComputeJobFailover.java Use injected localNode to decide local vs remote execution.
modules/compute/src/main/java/org/apache/ignite/internal/compute/ComputeComponentImpl.java Provide localNode to ExecutionManager/ComputeMessaging and task wrappers.
modules/cluster-management/src/testFixtures/java/org/apache/ignite/internal/cluster/management/MockNode.java Replace localMember() with staticLocalNode() and update log naming.
modules/cluster-management/src/test/java/org/apache/ignite/internal/cluster/management/raft/CmgRaftServiceTest.java Construct CmgRaftService with localNode directly.
modules/cluster-management/src/test/java/org/apache/ignite/internal/cluster/management/network/CmgMessageHandlerTest.java Use staticLocalNode().name() for node name in tests.
modules/cluster-management/src/test/java/org/apache/ignite/internal/cluster/management/ClusterManagementGroupManagerTest.java Update CMG/metastorage node sets to use staticLocalNode().name().
modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/raft/CmgRaftService.java Inject localNode instead of querying topology for local member.
modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/metrics/LocalTopologyMetricsSource.java Metrics source now uses injected localNode.
modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/ClusterManagementGroupManager.java Use staticLocalNode() for metrics/thread names and local identity.
modules/cluster-management/src/integrationTest/java/org/apache/ignite/internal/cluster/management/raft/ItCmgRaftServiceTest.java Replace localMember() with staticLocalNode() in integration tests.
modules/cluster-management/src/integrationTest/java/org/apache/ignite/internal/cluster/management/metrics/ItTopologyMetricsTest.java Assertions updated to staticLocalNode() id/name.
modules/client/src/test/java/org/apache/ignite/client/TestServer.java Stub staticLocalNode() for handler tests.
modules/client-handler/src/main/java/org/apache/ignite/client/handler/ClientInboundMessageHandler.java Use staticLocalNode() for handshake payload.
modules/catalog-compaction/src/test/java/org/apache/ignite/internal/catalog/compaction/CatalogCompactionRunnerSelfTest.java Test setup passes localNode into compaction runner.
modules/catalog-compaction/src/main/java/org/apache/ignite/internal/catalog/compaction/CatalogCompactionRunner.java Inject localNode and use it for local node id.
Comments suppressed due to low confidence (4)

modules/network-api/src/main/java/org/apache/ignite/internal/network/TopologyService.java:1

  • The added NodeMetadata import is unused in compilation units (Javadoc references do not count as usage), which will fail the Java build with an unused-import error. Remove the import and reference the type via fully qualified name in Javadoc (e.g., {@link org.apache.ignite.network.NodeMetadata}), or otherwise use it in code.
    modules/network-api/src/main/java/org/apache/ignite/internal/network/ClusterService.java:1
  • This Javadoc references NodeMetadata but there is no import (and adding one would be unused and fail compilation). Use a fully-qualified Javadoc link ({@link org.apache.ignite.network.NodeMetadata}) to keep docs correct without introducing an unused import.
    modules/network/src/main/java/org/apache/ignite/internal/network/scalecube/ScaleCubeClusterService.java:1
  • staticLocalNode() now exposes an InternalClusterNode instance that throws at runtime for nodeMetadata() and toPublicNode(). Even if the intent is to discourage metadata usage, these methods are part of the InternalClusterNode contract and may be invoked indirectly (logging, telemetry, conversions, etc.), turning a refactor into a production-only failure. Prefer returning safe values: nodeMetadata() can return null (or a snapshot value), and toPublicNode() should return a valid public ClusterNode based on the stored id/name/address.
    modules/network/src/main/java/org/apache/ignite/internal/network/DefaultMessagingService.java:1
  • The constructor now takes both nodeName and localNode, which can diverge and create hard-to-debug inconsistencies (thread names, metrics tags, logging vs. sender identity). Consider deriving nodeName from localNode.name() (or asserting they match) to ensure a single source of truth.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@sashapolo sashapolo merged commit e747cbd into apache:main Apr 3, 2026
5 checks passed
@sashapolo sashapolo deleted the ignite-28441 branch April 3, 2026 11:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants