Search in sources :

Example 26 with RegionNotFoundException

use of org.apache.geode.cache.query.RegionNotFoundException in project geode by apache.

the class CqQueryDUnitTest method testCQCreateClose.

/**
   * Test for CQ register and UnRegister.
   * 
   * @throws Exception
   */
@Test
public void testCQCreateClose() throws Exception {
    final Host host = Host.getHost(0);
    VM server = host.getVM(0);
    VM client = host.getVM(1);
    /* Init Server and Client */
    createServer(server);
    final int thePort = server.invoke(() -> CqQueryDUnitTest.getCacheServerPort());
    final String host0 = NetworkUtils.getServerHostName(server.getHost());
    createClient(client, thePort, host0);
    /* debug */
    // getLogWriter().info("### DEBUG STOP ####");
    // pause(60 * 1000);
    // getLogWriter().info("### DEBUG START ####");
    /* Create CQs. */
    createCQ(client, "testCQCreateClose_0", cqs[0]);
    validateCQCount(client, 1);
    executeCQ(client, "testCQCreateClose_0", false, null);
    /* Init values at server. */
    int size = 10;
    createValues(server, regions[0], size);
    // Wait for client to Synch.
    waitForCreated(client, "testCQCreateClose_0", KEY + size);
    // Check if Client and Server in sync.
    // validateServerClientRegionEntries(server, client, regions[0]);
    validateQuery(server, cqs[0], 10);
    // validate CQs.
    validateCQ(client, "testCQCreateClose_0", /* resultSize: */
    noTest, /* creates: */
    size, /* updates: */
    0, /* deletes; */
    0, /* queryInserts: */
    size, /* queryUpdates: */
    0, /* queryDeletes: */
    0, /* totalEvents: */
    size);
    // Test CQ stop
    stopCQ(client, "testCQCreateClose_0");
    // Test CQ re-enable
    executeCQ(client, "testCQCreateClose_0", false, null);
    // Test CQ Close
    closeCQ(client, "testCQCreateClose_0");
    // Create CQs with no name, execute, and close.
    createAndExecCQNoName(client, cqs[0]);
    // Accessing the closed CQ.
    failIfCQExists(client, "testCQCreateClose_0");
    // re-Create the cq which is closed.
    createCQ(client, "testCQCreateClose_0", cqs[0]);
    /* Test CQ Count */
    validateCQCount(client, 1);
    // Registering CQ with same name from same client.
    try {
        createCQ(client, "testCQCreateClose_0", cqs[0]);
        fail("Trying to create CQ with same name. Should have thrown CQExistsException");
    } catch (org.apache.geode.test.dunit.RMIException rmiExc) {
        Throwable cause = rmiExc.getCause();
        assertTrue("unexpected cause: " + cause.getClass().getName(), cause instanceof AssertionError);
        // should be a CQExistsException
        Throwable causeCause = cause.getCause();
        assertTrue("Got wrong exception: " + causeCause.getClass().getName(), causeCause instanceof CqExistsException);
    }
    // Getting values from non-existent CQ.
    failIfCQExists(client, "testCQCreateClose_NO");
    // Server Registering CQ.
    try {
        createCQ(server, "testCQCreateClose_1", cqs[0]);
        fail("Trying to create CQ on Cache Server. Should have thrown Exception.");
    } catch (org.apache.geode.test.dunit.RMIException rmiExc) {
        Throwable cause = rmiExc.getCause();
        assertTrue("unexpected cause: " + cause.getClass().getName(), cause instanceof AssertionError);
        // should be a IllegalStateException
        Throwable causeCause = cause.getCause();
        assertTrue("Got wrong exception: " + causeCause.getClass().getName(), causeCause instanceof IllegalStateException);
    }
    // Trying to execute CQ on non-existing region.
    createCQ(client, "testCQCreateClose_2", invalidCQs[0]);
    try {
        executeCQ(client, "testCQCreateClose_2", false, "RegionNotFoundException");
        fail("Trying to create CQ on non-existing Region. Should have thrown Exception.");
    } catch (org.apache.geode.test.dunit.RMIException rmiExc) {
        Throwable cause = rmiExc.getCause();
        if (!(cause instanceof AssertionError)) {
            LogWriterUtils.getLogWriter().severe("Expected to see an AssertionError.", cause);
            fail("wrong error");
        }
        // should be a RegionNotFoundException
        Throwable causeCause = cause.getCause();
        if (!(causeCause instanceof RegionNotFoundException)) {
            LogWriterUtils.getLogWriter().severe("Expected cause to be RegionNotFoundException", cause);
            fail("wrong cause");
        }
    }
    /* Test CQ Count - Above failed create should not increment the CQ cnt. */
    validateCQCount(client, 2);
    createCQ(client, "testCQCreateClose_3", cqs[2]);
    validateCQCount(client, 3);
    /* Test for closeAllCQs() */
    client.invoke(new CacheSerializableRunnable("CloseAll CQ :") {

        public void run2() throws CacheException {
            LogWriterUtils.getLogWriter().info("### Close All CQ. ###");
            // Get CQ Service.
            QueryService cqService = null;
            try {
                cqService = getCache().getQueryService();
            } catch (Exception cqe) {
                cqe.printStackTrace();
                LogWriterUtils.getLogWriter().info("Failed to getCQService.", cqe);
                fail("Failed to getCQService.");
            }
            // Close CQ.
            try {
                cqService.closeCqs();
            } catch (Exception ex) {
                ex.printStackTrace();
                LogWriterUtils.getLogWriter().info("Failed to close All CQ.", ex);
                fail("Failed to close All CQ. " + ex.getMessage());
            }
        }
    });
    validateCQCount(client, 0);
    // Initialize.
    createCQ(client, "testCQCreateClose_2", cqs[1]);
    createCQ(client, "testCQCreateClose_4", cqs[1]);
    createCQ(client, "testCQCreateClose_5", cqs[1]);
    // Execute few of the initialized cqs
    executeCQ(client, "testCQCreateClose_4", false, null);
    executeCQ(client, "testCQCreateClose_5", false, null);
    // Call close all CQ.
    client.invoke(new CacheSerializableRunnable("CloseAll CQ 2 :") {

        public void run2() throws CacheException {
            LogWriterUtils.getLogWriter().info("### Close All CQ 2. ###");
            // Get CQ Service.
            QueryService cqService = null;
            try {
                cqService = getCache().getQueryService();
            } catch (Exception cqe) {
                cqe.printStackTrace();
                fail("Failed to getCQService.");
            }
            // Close CQ.
            try {
                cqService.closeCqs();
            } catch (Exception ex) {
                ex.printStackTrace();
                fail("Failed to close All CQ  . " + ex.getMessage());
            }
        }
    });
    // Close.
    closeClient(client);
    closeServer(server);
}
Also used : CacheException(org.apache.geode.cache.CacheException) RegionNotFoundException(org.apache.geode.cache.query.RegionNotFoundException) Host(org.apache.geode.test.dunit.Host) CqExistsException(org.apache.geode.cache.query.CqExistsException) RegionNotFoundException(org.apache.geode.cache.query.RegionNotFoundException) CqClosedException(org.apache.geode.cache.query.CqClosedException) IOException(java.io.IOException) CacheException(org.apache.geode.cache.CacheException) CacheSerializableRunnable(org.apache.geode.cache30.CacheSerializableRunnable) DefaultQueryService(org.apache.geode.cache.query.internal.DefaultQueryService) QueryService(org.apache.geode.cache.query.QueryService) VM(org.apache.geode.test.dunit.VM) CqExistsException(org.apache.geode.cache.query.CqExistsException) DistributedTest(org.apache.geode.test.junit.categories.DistributedTest) Test(org.junit.Test)

Aggregations

RegionNotFoundException (org.apache.geode.cache.query.RegionNotFoundException)26 Test (org.junit.Test)11 Region (org.apache.geode.cache.Region)9 CqException (org.apache.geode.cache.query.CqException)9 QueryService (org.apache.geode.cache.query.QueryService)9 CqExistsException (org.apache.geode.cache.query.CqExistsException)7 IndexExistsException (org.apache.geode.cache.query.IndexExistsException)7 IndexNameConflictException (org.apache.geode.cache.query.IndexNameConflictException)7 CacheSerializableRunnable (org.apache.geode.cache30.CacheSerializableRunnable)7 Cache (org.apache.geode.cache.Cache)6 CacheClosedException (org.apache.geode.cache.CacheClosedException)6 CacheException (org.apache.geode.cache.CacheException)6 RegionDestroyedException (org.apache.geode.cache.RegionDestroyedException)6 DistributedTest (org.apache.geode.test.junit.categories.DistributedTest)6 CancelException (org.apache.geode.CancelException)5 CqAttributes (org.apache.geode.cache.query.CqAttributes)5 CqAttributesFactory (org.apache.geode.cache.query.CqAttributesFactory)5 CqClosedException (org.apache.geode.cache.query.CqClosedException)5 PartitionedRegion (org.apache.geode.internal.cache.PartitionedRegion)5 Host (org.apache.geode.test.dunit.Host)5