This is an automated email from the ASF dual-hosted git repository.

tkalkirill pushed a commit to branch catalog-feature
in repository https://gitbox.apache.org/repos/asf/ignite-3.git


The following commit(s) were added to refs/heads/catalog-feature by this push:
     new 0cca7db9f6 IGNITE-20102 Fix hanging C#/C++ tests due to IndexManager 
switch to catalog (#2383)
0cca7db9f6 is described below

commit 0cca7db9f61c5d86bad4a8eb25e87ab025576173
Author: Kirill Tkalenko <[email protected]>
AuthorDate: Tue Aug 1 12:43:14 2023 +0300

    IGNITE-20102 Fix hanging C#/C++ tests due to IndexManager switch to catalog 
(#2383)
---
 .../runner/app/PlatformTestNodeRunner.java         | 269 +++++++++++++++++++--
 1 file changed, 249 insertions(+), 20 deletions(-)

diff --git 
a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/PlatformTestNodeRunner.java
 
b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/PlatformTestNodeRunner.java
index 67579912c5..fca964e79a 100644
--- 
a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/PlatformTestNodeRunner.java
+++ 
b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/PlatformTestNodeRunner.java
@@ -18,10 +18,17 @@
 package org.apache.ignite.internal.runner.app;
 
 import static java.util.stream.Collectors.toList;
+import static 
org.apache.ignite.internal.catalog.CatalogService.DEFAULT_SCHEMA_NAME;
+import static 
org.apache.ignite.internal.distributionzones.DistributionZoneManager.IMMEDIATE_TIMER_VALUE;
 import static 
org.apache.ignite.internal.distributionzones.DistributionZonesTestUtil.createZone;
 import static org.apache.ignite.internal.testframework.IgniteTestUtils.await;
 import static 
org.apache.ignite.internal.testframework.IgniteTestUtils.escapeWindowsPath;
 import static 
org.apache.ignite.internal.testframework.IgniteTestUtils.getResourcePath;
+import static 
org.apache.ignite.internal.testframework.matchers.CompletableFutureMatcher.willBe;
+import static 
org.apache.ignite.internal.testframework.matchers.CompletableFutureMatcher.willCompleteSuccessfully;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.nullValue;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
 import io.netty.util.ResourceLeakDetector;
 import java.io.IOException;
@@ -39,6 +46,9 @@ import org.apache.ignite.compute.ComputeJob;
 import org.apache.ignite.compute.JobExecutionContext;
 import org.apache.ignite.internal.app.IgniteImpl;
 import org.apache.ignite.internal.binarytuple.BinaryTupleReader;
+import org.apache.ignite.internal.catalog.commands.ColumnParams;
+import org.apache.ignite.internal.catalog.commands.CreateTableParams;
+import org.apache.ignite.internal.catalog.commands.CreateZoneParams;
 import org.apache.ignite.internal.client.proto.ColumnTypeConverter;
 import 
org.apache.ignite.internal.configuration.BasicAuthenticationProviderChange;
 import org.apache.ignite.internal.configuration.SecurityConfiguration;
@@ -62,12 +72,12 @@ import org.apache.ignite.internal.util.IgniteUtils;
 import org.apache.ignite.sql.Session;
 import org.apache.ignite.table.Table;
 import org.apache.ignite.table.Tuple;
-import org.jetbrains.annotations.NotNull;
 
 /**
  * Helper class for non-Java platform tests (.NET, C++, Python, ...). Starts 
nodes, populates tables and data for tests.
  */
 @SuppressWarnings("CallToSystemGetenv")
+// TODO: IGNITE-19499 Use catalog only
 public class PlatformTestNodeRunner {
     /** Test node name. */
     private static final String NODE_NAME = 
PlatformTestNodeRunner.class.getCanonicalName();
@@ -81,13 +91,11 @@ public class PlatformTestNodeRunner {
     /** Test node name 4. */
     private static final String NODE_NAME4 = 
PlatformTestNodeRunner.class.getCanonicalName() + "_4";
 
-    private static final String SCHEMA_NAME = "PUBLIC";
-
     private static final String TABLE_NAME = "TBL1";
 
-    private static final String TABLE_NAME_ALL_COLUMNS = "tbl_all_columns";
+    private static final String TABLE_NAME_ALL_COLUMNS = "TBL_ALL_COLUMNS";
 
-    private static final String TABLE_NAME_ALL_COLUMNS_SQL = 
"tbl_all_columns_sql"; // All column types supported by SQL.
+    private static final String TABLE_NAME_ALL_COLUMNS_SQL = 
"TBL_ALL_COLUMNS_SQL"; // All column types supported by SQL.
 
     private static final String ZONE_NAME = "zone1";
 
@@ -218,7 +226,6 @@ public class PlatformTestNodeRunner {
      * @param nodeCfg Node configuration.
      * @return Started nodes.
      */
-    @NotNull
     static List<Ignite> startNodes(Path basePath, Map<String, String> nodeCfg) 
throws IOException {
         IgniteUtils.deleteIfExists(basePath);
         Files.createDirectories(basePath);
@@ -258,11 +265,23 @@ public class PlatformTestNodeRunner {
     }
 
     private static void createTables(Ignite node) {
-        var keyCol = "key";
+        var keyCol = "KEY";
+
+        await(createZone(((IgniteImpl) node).distributionZoneManager(), 
ZONE_NAME, 10, 1));
+
+        IgniteImpl ignite = ((IgniteImpl) node);
+
+        CreateZoneParams createZoneParams = CreateZoneParams.builder()
+                .zoneName(ZONE_NAME)
+                .partitions(10)
+                .replicas(1)
+                .dataNodesAutoAdjustScaleUp(IMMEDIATE_TIMER_VALUE)
+                .dataNodesAutoAdjustScaleDown(IMMEDIATE_TIMER_VALUE)
+                .build();
 
-        int zoneId = await(createZone(((IgniteImpl) 
node).distributionZoneManager(), ZONE_NAME, 10, 1));
+        
assertThat(ignite.catalogManager().createDistributionZone(createZoneParams), 
willBe(nullValue()));
 
-        TableDefinition schTbl = SchemaBuilders.tableBuilder(SCHEMA_NAME, 
TABLE_NAME).columns(
+        TableDefinition schTbl = 
SchemaBuilders.tableBuilder(DEFAULT_SCHEMA_NAME, TABLE_NAME).columns(
                 SchemaBuilders.column(keyCol, ColumnType.INT64).build(),
                 SchemaBuilders.column("val", 
ColumnType.string()).asNullable(true).build()
         ).withPrimaryKey(keyCol).build();
@@ -271,9 +290,22 @@ public class PlatformTestNodeRunner {
                 SchemaConfigurationConverter.convert(schTbl, tblCh)
         ));
 
+        CreateTableParams createTableParams = CreateTableParams.builder()
+                .schemaName(DEFAULT_SCHEMA_NAME)
+                .zone(ZONE_NAME)
+                .tableName(TABLE_NAME)
+                .columns(List.of(
+                        
ColumnParams.builder().name(keyCol).type(org.apache.ignite.sql.ColumnType.INT64).build(),
+                        
ColumnParams.builder().name("VAL").type(org.apache.ignite.sql.ColumnType.STRING).length(0).nullable(true).build()
+                ))
+                .primaryKeyColumns(List.of(keyCol))
+                .build();
+
+        assertThat(ignite.catalogManager().createTable(createTableParams), 
willBe(nullValue()));
+
         int maxTimePrecision = TemporalColumnType.MAX_TIME_PRECISION;
 
-        TableDefinition schTblAll = SchemaBuilders.tableBuilder(SCHEMA_NAME, 
TABLE_NAME_ALL_COLUMNS).columns(
+        TableDefinition schTblAll = 
SchemaBuilders.tableBuilder(DEFAULT_SCHEMA_NAME, 
TABLE_NAME_ALL_COLUMNS).columns(
                 SchemaBuilders.column(keyCol, ColumnType.INT64).build(),
                 SchemaBuilders.column("str", 
ColumnType.string()).asNullable(true).build(),
                 SchemaBuilders.column("int8", 
ColumnType.INT8).asNullable(true).build(),
@@ -299,8 +331,47 @@ public class PlatformTestNodeRunner {
                 SchemaConfigurationConverter.convert(schTblAll, tblCh)
         ));
 
+        CreateTableParams createTableParamsAll = CreateTableParams.builder()
+                .schemaName(DEFAULT_SCHEMA_NAME)
+                .zone(ZONE_NAME)
+                .tableName(TABLE_NAME_ALL_COLUMNS)
+                .columns(List.of(
+                        
ColumnParams.builder().name(keyCol).type(org.apache.ignite.sql.ColumnType.INT64).build(),
+                        
ColumnParams.builder().name("STR").type(org.apache.ignite.sql.ColumnType.STRING).length(0).nullable(true).build(),
+                        
ColumnParams.builder().name("INT8").type(org.apache.ignite.sql.ColumnType.INT8).nullable(true).build(),
+                        
ColumnParams.builder().name("INT16").type(org.apache.ignite.sql.ColumnType.INT16).nullable(true).build(),
+                        
ColumnParams.builder().name("INT32").type(org.apache.ignite.sql.ColumnType.INT32).nullable(true).build(),
+                        
ColumnParams.builder().name("INT64").type(org.apache.ignite.sql.ColumnType.INT64).nullable(true).build(),
+                        
ColumnParams.builder().name("FLOAT").type(org.apache.ignite.sql.ColumnType.FLOAT).nullable(true).build(),
+                        
ColumnParams.builder().name("DOUBLE").type(org.apache.ignite.sql.ColumnType.DOUBLE).nullable(true).build(),
+                        
ColumnParams.builder().name("UUID").type(org.apache.ignite.sql.ColumnType.UUID).nullable(true).build(),
+                        
ColumnParams.builder().name("DATE").type(org.apache.ignite.sql.ColumnType.DATE).nullable(true).build(),
+                        
ColumnParams.builder().name("BITMASK").type(org.apache.ignite.sql.ColumnType.BITMASK).length(64).nullable(true)
+                                .build(),
+                        
ColumnParams.builder().name("TIME").type(org.apache.ignite.sql.ColumnType.TIME).precision(maxTimePrecision)
+                                .nullable(true).build(),
+                        
ColumnParams.builder().name("TIME2").type(org.apache.ignite.sql.ColumnType.TIME).precision(2).nullable(true)
+                                .build(),
+                        
ColumnParams.builder().name("DATETIME").type(org.apache.ignite.sql.ColumnType.DATETIME).precision(maxTimePrecision)
+                                .nullable(true).build(),
+                        
ColumnParams.builder().name("DATETIME2").type(org.apache.ignite.sql.ColumnType.DATETIME).precision(3).nullable(true)
+                                .build(),
+                        
ColumnParams.builder().name("TIMESTAMP").type(org.apache.ignite.sql.ColumnType.DATETIME).precision(maxTimePrecision)
+                                .nullable(true).build(),
+                        
ColumnParams.builder().name("TIMESTAMP2").type(org.apache.ignite.sql.ColumnType.DATETIME).precision(4)
+                                .nullable(true).build(),
+                        
ColumnParams.builder().name("BLOB").type(org.apache.ignite.sql.ColumnType.BYTE_ARRAY).length(0).nullable(true)
+                                .build(),
+                        
ColumnParams.builder().name("DECIMAL").type(org.apache.ignite.sql.ColumnType.DECIMAL).precision(19).scale(3)
+                                .nullable(true).build()
+                ))
+                .primaryKeyColumns(List.of(keyCol))
+                .build();
+
+        assertThat(ignite.catalogManager().createTable(createTableParamsAll), 
willBe(nullValue()));
+
         // TODO IGNITE-18431 remove extra table, use TABLE_NAME_ALL_COLUMNS 
for SQL tests.
-        TableDefinition schTblAllSql = 
SchemaBuilders.tableBuilder(SCHEMA_NAME, TABLE_NAME_ALL_COLUMNS_SQL).columns(
+        TableDefinition schTblAllSql = 
SchemaBuilders.tableBuilder(DEFAULT_SCHEMA_NAME, 
TABLE_NAME_ALL_COLUMNS_SQL).columns(
                 SchemaBuilders.column(keyCol, ColumnType.INT64).build(),
                 SchemaBuilders.column("str", 
ColumnType.string()).asNullable(true).build(),
                 SchemaBuilders.column("int8", 
ColumnType.INT8).asNullable(true).build(),
@@ -325,6 +396,43 @@ public class PlatformTestNodeRunner {
                 SchemaConfigurationConverter.convert(schTblAllSql, tblCh)
         ));
 
+        CreateTableParams createTableParamsAllSql = CreateTableParams.builder()
+                .schemaName(DEFAULT_SCHEMA_NAME)
+                .zone(ZONE_NAME)
+                .tableName(TABLE_NAME_ALL_COLUMNS_SQL)
+                .columns(List.of(
+                        
ColumnParams.builder().name(keyCol).type(org.apache.ignite.sql.ColumnType.INT64).build(),
+                        
ColumnParams.builder().name("STR").type(org.apache.ignite.sql.ColumnType.STRING).length(0).nullable(true).build(),
+                        
ColumnParams.builder().name("INT8").type(org.apache.ignite.sql.ColumnType.INT8).nullable(true).build(),
+                        
ColumnParams.builder().name("INT16").type(org.apache.ignite.sql.ColumnType.INT16).nullable(true).build(),
+                        
ColumnParams.builder().name("INT32").type(org.apache.ignite.sql.ColumnType.INT32).nullable(true).build(),
+                        
ColumnParams.builder().name("INT64").type(org.apache.ignite.sql.ColumnType.INT64).nullable(true).build(),
+                        
ColumnParams.builder().name("FLOAT").type(org.apache.ignite.sql.ColumnType.FLOAT).nullable(true).build(),
+                        
ColumnParams.builder().name("DOUBLE").type(org.apache.ignite.sql.ColumnType.DOUBLE).nullable(true).build(),
+                        
ColumnParams.builder().name("UUID").type(org.apache.ignite.sql.ColumnType.UUID).nullable(true).build(),
+                        
ColumnParams.builder().name("DATE").type(org.apache.ignite.sql.ColumnType.DATE).nullable(true).build(),
+                        
ColumnParams.builder().name("TIME").type(org.apache.ignite.sql.ColumnType.TIME).precision(maxTimePrecision)
+                                .nullable(true).build(),
+                        
ColumnParams.builder().name("TIME2").type(org.apache.ignite.sql.ColumnType.TIME).precision(maxTimePrecision)
+                                .nullable(true).build(),
+                        
ColumnParams.builder().name("DATETIME").type(org.apache.ignite.sql.ColumnType.DATETIME).precision(maxTimePrecision)
+                                .nullable(true).build(),
+                        
ColumnParams.builder().name("DATETIME2").type(org.apache.ignite.sql.ColumnType.DATETIME).precision(maxTimePrecision)
+                                .nullable(true).build(),
+                        
ColumnParams.builder().name("TIMESTAMP").type(org.apache.ignite.sql.ColumnType.TIMESTAMP)
+                                
.precision(maxTimePrecision).nullable(true).build(),
+                        
ColumnParams.builder().name("TIMESTAMP2").type(org.apache.ignite.sql.ColumnType.TIMESTAMP)
+                                
.precision(maxTimePrecision).nullable(true).build(),
+                        
ColumnParams.builder().name("BLOB").type(org.apache.ignite.sql.ColumnType.BYTE_ARRAY).length(0).nullable(true)
+                                .build(),
+                        
ColumnParams.builder().name("DECIMAL").type(org.apache.ignite.sql.ColumnType.DECIMAL).precision(19).scale(3)
+                                .nullable(true).build()
+                ))
+                .primaryKeyColumns(List.of(keyCol))
+                .build();
+
+        
assertThat(ignite.catalogManager().createTable(createTableParamsAllSql), 
willBe(nullValue()));
+
         createTwoColumnTable(node, ColumnType.INT8);
         createTwoColumnTable(node, ColumnType.INT16);
         createTwoColumnTable(node, ColumnType.INT32);
@@ -341,12 +449,112 @@ public class PlatformTestNodeRunner {
         createTwoColumnTable(node, ColumnType.number());
         createTwoColumnTable(node, ColumnType.blob());
         createTwoColumnTable(node, ColumnType.bitmaskOf(32));
+
+        createTwoColumnTable(
+                ignite,
+                
ColumnParams.builder().name("KEY").type(org.apache.ignite.sql.ColumnType.INT8).build(),
+                
ColumnParams.builder().name("VAL").type(org.apache.ignite.sql.ColumnType.INT8).nullable(true).build()
+        );
+
+        createTwoColumnTable(
+                ignite,
+                
ColumnParams.builder().name("KEY").type(org.apache.ignite.sql.ColumnType.INT16).build(),
+                
ColumnParams.builder().name("VAL").type(org.apache.ignite.sql.ColumnType.INT16).nullable(true).build()
+        );
+
+        createTwoColumnTable(
+                ignite,
+                
ColumnParams.builder().name("KEY").type(org.apache.ignite.sql.ColumnType.INT32).build(),
+                
ColumnParams.builder().name("VAL").type(org.apache.ignite.sql.ColumnType.INT32).nullable(true).build()
+        );
+
+        createTwoColumnTable(
+                ignite,
+                
ColumnParams.builder().name("KEY").type(org.apache.ignite.sql.ColumnType.INT64).build(),
+                
ColumnParams.builder().name("VAL").type(org.apache.ignite.sql.ColumnType.INT64).nullable(true).build()
+        );
+
+        createTwoColumnTable(
+                ignite,
+                
ColumnParams.builder().name("KEY").type(org.apache.ignite.sql.ColumnType.FLOAT).build(),
+                
ColumnParams.builder().name("VAL").type(org.apache.ignite.sql.ColumnType.FLOAT).nullable(true).build()
+        );
+
+        createTwoColumnTable(
+                ignite,
+                
ColumnParams.builder().name("KEY").type(org.apache.ignite.sql.ColumnType.DOUBLE).build(),
+                
ColumnParams.builder().name("VAL").type(org.apache.ignite.sql.ColumnType.DOUBLE).nullable(true).build()
+        );
+
+        createTwoColumnTable(
+                ignite,
+                
ColumnParams.builder().name("KEY").type(org.apache.ignite.sql.ColumnType.UUID).build(),
+                
ColumnParams.builder().name("VAL").type(org.apache.ignite.sql.ColumnType.UUID).nullable(true).build()
+        );
+
+        createTwoColumnTable(
+                ignite,
+                
ColumnParams.builder().name("KEY").type(org.apache.ignite.sql.ColumnType.DECIMAL).precision(19).scale(3).build(),
+                
ColumnParams.builder().name("VAL").type(org.apache.ignite.sql.ColumnType.DECIMAL).precision(19).scale(3).nullable(true)
+                        .build()
+        );
+
+        createTwoColumnTable(
+                ignite,
+                
ColumnParams.builder().name("KEY").type(org.apache.ignite.sql.ColumnType.STRING).length(0).build(),
+                
ColumnParams.builder().name("VAL").type(org.apache.ignite.sql.ColumnType.STRING).length(0).nullable(true).build()
+        );
+
+        createTwoColumnTable(
+                ignite,
+                
ColumnParams.builder().name("KEY").type(org.apache.ignite.sql.ColumnType.DATE).build(),
+                
ColumnParams.builder().name("VAL").type(org.apache.ignite.sql.ColumnType.DATE).nullable(true).build()
+        );
+
+        createTwoColumnTable(
+                ignite,
+                
ColumnParams.builder().name("KEY").type(org.apache.ignite.sql.ColumnType.DATETIME).precision(6).build(),
+                
ColumnParams.builder().name("VAL").type(org.apache.ignite.sql.ColumnType.DATETIME).precision(6).nullable(true).build()
+        );
+
+        createTwoColumnTable(
+                ignite,
+                
ColumnParams.builder().name("KEY").type(org.apache.ignite.sql.ColumnType.TIME).precision(6).build(),
+                
ColumnParams.builder().name("VAL").type(org.apache.ignite.sql.ColumnType.TIME).precision(6).nullable(true).build()
+        );
+
+        createTwoColumnTable(
+                ignite,
+                
ColumnParams.builder().name("KEY").type(org.apache.ignite.sql.ColumnType.TIMESTAMP).precision(6).build(),
+                
ColumnParams.builder().name("VAL").type(org.apache.ignite.sql.ColumnType.TIMESTAMP).precision(6).nullable(true).build()
+        );
+
+        createTwoColumnTable(
+                ignite,
+                
ColumnParams.builder().name("KEY").type(org.apache.ignite.sql.ColumnType.NUMBER).precision(Integer.MAX_VALUE).build(),
+                
ColumnParams.builder().name("VAL").type(org.apache.ignite.sql.ColumnType.NUMBER).precision(Integer.MAX_VALUE).nullable(true)
+                        .build()
+        );
+
+        createTwoColumnTable(
+                ignite,
+                
ColumnParams.builder().name("KEY").type(org.apache.ignite.sql.ColumnType.BYTE_ARRAY).length(0).build(),
+                
ColumnParams.builder().name("VAL").type(org.apache.ignite.sql.ColumnType.BYTE_ARRAY).length(0).nullable(true)
+                        .build()
+        );
+
+        createTwoColumnTable(
+                ignite,
+                
ColumnParams.builder().name("KEY").type(org.apache.ignite.sql.ColumnType.BITMASK).length(32).build(),
+                
ColumnParams.builder().name("VAL").type(org.apache.ignite.sql.ColumnType.BITMASK).length(32).nullable(true)
+                        .build()
+        );
     }
 
     private static void createTwoColumnTable(Ignite node, ColumnType type) {
         var keyCol = "key";
 
-        TableDefinition schTbl = SchemaBuilders.tableBuilder(SCHEMA_NAME, 
"tbl_" + type.typeSpec().name()).columns(
+        TableDefinition schTbl = 
SchemaBuilders.tableBuilder(DEFAULT_SCHEMA_NAME, "tbl_" + 
type.typeSpec().name()).columns(
                 SchemaBuilders.column(keyCol, type).build(),
                 SchemaBuilders.column("val", type).asNullable(true).build()
         ).withPrimaryKey(keyCol).build();
@@ -356,6 +564,25 @@ public class PlatformTestNodeRunner {
         ));
     }
 
+    private static void createTwoColumnTable(IgniteImpl ignite, ColumnParams 
keyColumnParams, ColumnParams valueColumnParams) {
+        assertEquals(keyColumnParams.type(), valueColumnParams.type());
+
+        // TODO: IGNITE-19499 We need to use only the column type used in the 
catalog
+        String tableNamePostfix = keyColumnParams.type() == 
org.apache.ignite.sql.ColumnType.BYTE_ARRAY
+                ? ColumnType.blob().typeSpec().name()
+                : keyColumnParams.type().name();
+
+        CreateTableParams createTableParams = CreateTableParams.builder()
+                .schemaName(DEFAULT_SCHEMA_NAME)
+                .zone(ZONE_NAME)
+                .tableName(("tbl_" + tableNamePostfix).toUpperCase())
+                .columns(List.of(keyColumnParams, valueColumnParams))
+                .primaryKeyColumns(List.of(keyColumnParams.name()))
+                .build();
+
+        assertThat(ignite.catalogManager().createTable(createTableParams), 
willBe(nullValue()));
+    }
+
     /**
      * Gets the thin client port.
      *
@@ -390,7 +617,7 @@ public class PlatformTestNodeRunner {
     /**
      * Compute job that creates a table.
      */
-    @SuppressWarnings({"unused"}) // Used by platform tests.
+    @SuppressWarnings("unused") // Used by platform tests.
     private static class CreateTableJob implements ComputeJob<String> {
         @Override
         public String execute(JobExecutionContext context, Object... args) {
@@ -407,7 +634,7 @@ public class PlatformTestNodeRunner {
     /**
      * Compute job that drops a table.
      */
-    @SuppressWarnings({"unused"}) // Used by platform tests.
+    @SuppressWarnings("unused") // Used by platform tests.
     private static class DropTableJob implements ComputeJob<String> {
         @Override
         public String execute(JobExecutionContext context, Object... args) {
@@ -423,7 +650,7 @@ public class PlatformTestNodeRunner {
     /**
      * Compute job that throws an exception.
      */
-    @SuppressWarnings({"unused"}) // Used by platform tests.
+    @SuppressWarnings("unused") // Used by platform tests.
     private static class ExceptionJob implements ComputeJob<String> {
         @Override
         public String execute(JobExecutionContext context, Object... args) {
@@ -434,7 +661,7 @@ public class PlatformTestNodeRunner {
     /**
      * Compute job that computes row colocation hash.
      */
-    @SuppressWarnings({"unused"}) // Used by platform tests.
+    @SuppressWarnings("unused") // Used by platform tests.
     private static class ColocationHashJob implements ComputeJob<Integer> {
         @Override
         public Integer execute(JobExecutionContext context, Object... args) {
@@ -558,7 +785,7 @@ public class PlatformTestNodeRunner {
     /**
      * Compute job that computes row colocation hash according to the current 
table schema.
      */
-    @SuppressWarnings({"unused"}) // Used by platform tests.
+    @SuppressWarnings("unused") // Used by platform tests.
     private static class TableRowColocationHashJob implements 
ComputeJob<Integer> {
         @Override
         public Integer execute(JobExecutionContext context, Object... args) {
@@ -582,14 +809,14 @@ public class PlatformTestNodeRunner {
     /**
      * Compute job that enables or disables client authentication.
      */
-    @SuppressWarnings({"unused"}) // Used by platform tests.
+    @SuppressWarnings("unused") // Used by platform tests.
     private static class EnableAuthenticationJob implements ComputeJob<Void> {
         @Override
         public Void execute(JobExecutionContext context, Object... args) {
             boolean enable = ((Integer) args[0]) != 0;
             @SuppressWarnings("resource") IgniteImpl ignite = (IgniteImpl) 
context.ignite();
 
-            ignite.clusterConfiguration().change(
+            CompletableFuture<Void> changeFuture = 
ignite.clusterConfiguration().change(
                     root -> 
root.changeRoot(SecurityConfiguration.KEY).changeAuthentication(
                             change -> {
                                 change.changeEnabled(enable);
@@ -603,7 +830,9 @@ public class PlatformTestNodeRunner {
                                     });
                                 }
                             }
-                    )).join();
+                    ));
+
+            assertThat(changeFuture, willCompleteSuccessfully());
 
             return null;
         }

Reply via email to