@Test
  public void testInstantiatorsWithServerKill() throws Exception {
    PORT1 = initServerCache(server1);
    PORT2 = initServerCache(server2);

    client1.invoke(() -> InstantiatorPropagationDUnitTest
        .createClientCache(NetworkUtils.getServerHostName(server1.getHost()), PORT1));
    client2.invoke(() -> InstantiatorPropagationDUnitTest
        .createClientCache(NetworkUtils.getServerHostName(server1.getHost()), PORT2));

    unregisterInstantiatorsInAllVMs();

    // wait for client2 to come online
    Wait.pause(2000);

    client1.invoke(InstantiatorPropagationDUnitTest::registerTestObject4);
    Wait.pause(4000);

    server1.invoke(InstantiatorPropagationDUnitTest::stopServer);

    server1.invoke(InstantiatorPropagationDUnitTest::registerTestObject5);
    server1.invoke(InstantiatorPropagationDUnitTest::registerTestObject6);

    server2.invoke(() -> InstantiatorPropagationDUnitTest
        .verifyInstantiators(instanceCountWithAllPuts));

    server1.invoke(() -> InstantiatorPropagationDUnitTest
        .verifyInstantiators(instanceCountWithAllPuts));

    client1.invoke(() -> InstantiatorPropagationDUnitTest
        .verifyInstantiators(instanceCountWithOnePut));

    client2.invoke(() -> InstantiatorPropagationDUnitTest
        .verifyInstantiators(instanceCountWithAllPuts));

    unregisterInstantiatorsInAllVMs();
  }
First register an instantiator on client1. Stop the server1. Now register 2 instantiators on
server1. Now check that server1,server2,client2 has all 3 instantiators. Client1 should have
only 1 instantiator since the server1 was stopped when 2 instantiators were added on it.
geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/InstantiatorPropagationDUnitTest.java