Index: modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteClusterActivateDeactivateTest.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteClusterActivateDeactivateTest.java (revision 8d63cd85ac5797c9a8ba5147a4dad3eb662904de) +++ modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteClusterActivateDeactivateTest.java (date 1517828667000) @@ -22,6 +22,7 @@ import java.util.concurrent.Callable; import java.util.concurrent.CyclicBarrier; import java.util.concurrent.ThreadLocalRandom; +import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicReference; import org.apache.ignite.Ignite; @@ -36,6 +37,7 @@ import org.apache.ignite.configuration.WALMode; import org.apache.ignite.internal.IgniteClientReconnectAbstractTest; import org.apache.ignite.internal.IgniteEx; +import org.apache.ignite.internal.IgniteFutureTimeoutCheckedException; import org.apache.ignite.internal.IgniteInternalFuture; import org.apache.ignite.internal.IgniteKernal; import org.apache.ignite.internal.TestRecordingCommunicationSpi; @@ -49,6 +51,8 @@ import org.apache.ignite.lang.IgniteBiPredicate; import org.apache.ignite.plugin.extensions.communication.Message; import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi; +import org.apache.ignite.spi.discovery.tcp.TestReconnectPluginProvider; +import org.apache.ignite.spi.discovery.tcp.TestReconnectProcessor; import org.apache.ignite.spi.discovery.tcp.TestTcpDiscoverySpi; import org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder; import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder; @@ -599,6 +603,46 @@ deactivateSimple(5, 4, 6); } + /** + * @throws Exception checks initial activation from client node + */ + public void testStartInactiveAndActivateFromClient() throws Exception { + TestReconnectPluginProvider.enabled = true; + TestReconnectProcessor.enabled = true; + + active = false; + + client = false; + + startGrid(0); + + client = true; + + startGrid(1); + + IgniteInternalFuture fut = GridTestUtils.runAsync(new Runnable() { + @Override public void run() { + ignite(1).active(true); + } + }); + + try { + fut.get(10, TimeUnit.SECONDS); + } + catch (IgniteFutureTimeoutCheckedException e) { +// following lines to finish test immediately, otherwise it is blocked indefinitely +// TestReconnectProcessor.enabled = false; + +// ((IgniteEx)ignite(1)).context().task().onKernalStart(true); + + fail("Cluster has not been activated in appropriate time!"); + } + + assertTrue(ignite(0).active()); + assertTrue(ignite(1).active()); + + } + /** * @param srvs Number of servers. * @param clients Number of clients.