This is an automated email from the ASF dual-hosted git repository.
namelchev pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite.git
The following commit(s) were added to refs/heads/master by this push:
new 2fff61570f0 IGNITE-22999 Fixed NPE in the cache distribution command
(#11490)
2fff61570f0 is described below
commit 2fff61570f042c662af7e550b9f45d0386730f8b
Author: Aleksandr <[email protected]>
AuthorDate: Fri Sep 20 11:52:25 2024 +0500
IGNITE-22999 Fixed NPE in the cache distribution command (#11490)
---
.../util/GridCommandHandlerClusterByClassTest.java | 17 +++++++++++++++++
.../cache/distribution/CacheDistributionTask.java | 11 +++++++----
2 files changed, 24 insertions(+), 4 deletions(-)
diff --git
a/modules/control-utility/src/test/java/org/apache/ignite/util/GridCommandHandlerClusterByClassTest.java
b/modules/control-utility/src/test/java/org/apache/ignite/util/GridCommandHandlerClusterByClassTest.java
index 32954a57a8f..b98b168a078 100644
---
a/modules/control-utility/src/test/java/org/apache/ignite/util/GridCommandHandlerClusterByClassTest.java
+++
b/modules/control-utility/src/test/java/org/apache/ignite/util/GridCommandHandlerClusterByClassTest.java
@@ -2055,6 +2055,9 @@ public class GridCommandHandlerClusterByClassTest extends
GridCommandHandlerClus
createCacheAndPreload(ignite, 100);
+ createCacheAndPreload(client, "with-node-filter-cache", 1, 3,
+ node -> node.consistentId().toString().endsWith("0"));
+
injectTestSystemOut();
// Run distribution for all node and all cache
@@ -2068,6 +2071,9 @@ public class GridCommandHandlerClusterByClassTest extends
GridCommandHandlerClus
// Result include info by cache "ignite-sys-cache"
assertContains(log, out, "[next group: id=-2100569601,
name=ignite-sys-cache]");
+ // Result include info by cache "with-node-filter-cache"
+ assertContains(log, out, "[next group: id=-1695684207,
name=with-node-filter-cache]");
+
// Run distribution for all node and all cache and include additional
user attribute
assertEquals(EXIT_CODE_OK, execute("--cache", "distribution", "null",
"--user-attributes", "ZONE,CELL,DC"));
@@ -2088,6 +2094,17 @@ public class GridCommandHandlerClusterByClassTest
extends GridCommandHandlerClus
// Check that number of columns increased by 3
assertEquals(3, userArrtCommaNum - commaNum);
+
+ // Run distribution for all node and "with-node-filter-cache" cache
+ assertEquals(EXIT_CODE_OK, execute("--cache", "distribution", "null",
"with-node-filter-cache"));
+
+ out = testOut.toString();
+
+ // Result include info by cache "with-node-filter-cache"
+ assertContains(log, out, "[next group: id=-1695684207,
name=with-node-filter-cache]");
+
+ // Result not include error
+ assertNotContains(log, out, "Cache distrubution task failed on nodes");
}
/** */
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/commandline/cache/distribution/CacheDistributionTask.java
b/modules/core/src/main/java/org/apache/ignite/internal/commandline/cache/distribution/CacheDistributionTask.java
index d98ad2a83d9..03cc7430289 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/commandline/cache/distribution/CacheDistributionTask.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/commandline/cache/distribution/CacheDistributionTask.java
@@ -119,16 +119,19 @@ public class CacheDistributionTask extends
VisorMultiNodeTask<CacheDistributionC
return info;
for (Integer id : grpIds) {
+ final DynamicCacheDescriptor desc =
ignite.context().cache().cacheDescriptor(id);
+
+ final CacheGroupContext grpCtx =
ignite.context().cache().cacheGroup(desc == null ? id : desc.groupId());
+
+ if (grpCtx == null)
+ continue;
+
final CacheDistributionGroup grp = new
CacheDistributionGroup();
info.getGroups().add(grp);
grp.setGroupId(id);
- final DynamicCacheDescriptor desc =
ignite.context().cache().cacheDescriptor(id);
-
- final CacheGroupContext grpCtx =
ignite.context().cache().cacheGroup(desc == null ? id : desc.groupId());
-
grp.setGroupName(grpCtx.cacheOrGroupName());
grp.setPartitions(new ArrayList<>());