Package org.jgroups.blocks

Source Code of org.jgroups.blocks.MessageDispatcherThreadingTest

package org.jgroups.blocks;


import org.jgroups.Channel;
import org.jgroups.tests.ChannelTestBase;
import org.jgroups.tests.MessageDispatcherTest;

import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;

/*
* Created on May 16, 2005
*/

/**
* @author BConlon
* @version $Revision: 1.1.14.1 $
*/
public class MessageDispatcherThreadingTest extends ChannelTestBase {

    Channel channel = null;
    //~ Methods ----------------------------------------------------------------------------------------------

    public void setUp() throws Exception {
        super.setUp();     
        channel = createChannel();
    }
   
    public void tearDown() throws Exception {       
        if(channel != null){
            channel.close();
        }

        super.tearDown();
    }
   
    public void testAllThreadsAreStopped() throws Exception {
        // get the threads for this thread group
        ThreadGroup threadGroup = Thread.currentThread().getThreadGroup();
        Thread[] originalThreads = new Thread[threadGroup.activeCount()];

        // populate the array with the threads in this group.
        threadGroup.enumerate(originalThreads);
        Set<Thread> originalThreadSet = new HashSet<Thread>(Arrays.asList(originalThreads));

        new MessageDispatcherTest(createChannel()).start();

        // wait for anything necessary to finish up.
        Thread.sleep(10000);

        Thread[] currentThreads = new Thread[threadGroup.activeCount()];

        // populate the array with the threads in this group.
        boolean residualThreadsFound = false;
        threadGroup.enumerate(currentThreads);

        // Look for threads not alive when we started.
        for (int i = 0; i < currentThreads.length; i++) {
            Thread thread = currentThreads[i];
            if (! originalThreadSet.contains(thread) && thread.isAlive()) {
                residualThreadsFound = true;
                System.out.println("The following thread was left over: " + thread);
            }
        }
        assertFalse("Residual threads were found", residualThreadsFound);
    }
}
TOP

Related Classes of org.jgroups.blocks.MessageDispatcherThreadingTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.