From 3c96b101bd04ab1d48c26edfa1ebbc47c02f274c Mon Sep 17 00:00:00 2001 From: Gary Gregory Date: Sun, 21 Feb 2021 17:02:46 -0500 Subject: [PATCH] Sort members. --- .../apache/commons/lang3/ThreadUtilsTest.java | 426 +++++++++--------- 1 file changed, 213 insertions(+), 213 deletions(-) diff --git a/src/test/java/org/apache/commons/lang3/ThreadUtilsTest.java b/src/test/java/org/apache/commons/lang3/ThreadUtilsTest.java index 436a7b8b7..9d58b1258 100644 --- a/src/test/java/org/apache/commons/lang3/ThreadUtilsTest.java +++ b/src/test/java/org/apache/commons/lang3/ThreadUtilsTest.java @@ -40,9 +40,122 @@ import org.junit.jupiter.api.Test; */ public class ThreadUtilsTest { + private static class TestThread extends Thread { + private final CountDownLatch latch = new CountDownLatch(1); + + TestThread(final String name) { + super(name); + } + + TestThread(final ThreadGroup group, final String name) { + super(group, name); + } + + @Override + public void run() { + latch.countDown(); + try { + synchronized(this) { + this.wait(); + } + } catch (final InterruptedException e) { + Thread.currentThread().interrupt(); + } + } + + @Override + public synchronized void start() { + super.start(); + try { + latch.await(); + } catch (final InterruptedException e) { + Thread.currentThread().interrupt(); + } + } + } + @Test - public void testNullThreadName() { - assertThrows(NullPointerException.class, () -> ThreadUtils.findThreadsByName(null)); + public void testAtLeastOneThreadExists() { + assertFalse(ThreadUtils.getAllThreads().isEmpty()); + } + + @Test + public void testAtLeastOneThreadGroupsExists() { + assertFalse(ThreadUtils.getAllThreadGroups().isEmpty()); + } + + @Test + public void testComplexThreadGroups() throws Exception { + final ThreadGroup threadGroup1 = new ThreadGroup("thread_group_1__"); + final ThreadGroup threadGroup2 = new ThreadGroup("thread_group_2__"); + final ThreadGroup threadGroup3 = new ThreadGroup(threadGroup2, "thread_group_3__"); + final ThreadGroup threadGroup4 = new ThreadGroup(threadGroup2, "thread_group_4__"); + final ThreadGroup threadGroup5 = new ThreadGroup(threadGroup1, "thread_group_5__"); + final ThreadGroup threadGroup6 = new ThreadGroup(threadGroup4, "thread_group_6__"); + final ThreadGroup threadGroup7 = new ThreadGroup(threadGroup4, "thread_group_7__"); + final ThreadGroup threadGroup7Doubled = new ThreadGroup(threadGroup4, "thread_group_7__"); + final List threadGroups = Arrays.asList(threadGroup1, threadGroup2, threadGroup3, threadGroup4, threadGroup5, threadGroup6, threadGroup7, threadGroup7Doubled); + + final Thread t1 = new TestThread("thread1_X__"); + final Thread t2 = new TestThread(threadGroup1, "thread2_X__"); + final Thread t3 = new TestThread(threadGroup2, "thread3_X__"); + final Thread t4 = new TestThread(threadGroup3, "thread4_X__"); + final Thread t5 = new TestThread(threadGroup4, "thread5_X__"); + final Thread t6 = new TestThread(threadGroup5, "thread6_X__"); + final Thread t7 = new TestThread(threadGroup6, "thread7_X__"); + final Thread t8 = new TestThread(threadGroup4, "thread8_X__"); + final Thread t9 = new TestThread(threadGroup6, "thread9_X__"); + final Thread t10 = new TestThread(threadGroup3, "thread10_X__"); + final Thread t11 = new TestThread(threadGroup7, "thread11_X__"); + final Thread t11Doubled = new TestThread(threadGroup7Doubled, "thread11_X__"); + final List threads = Arrays.asList(t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t11Doubled); + + try { + for (final Thread thread : threads) { + thread.start(); + } + assertTrue(ThreadUtils.getAllThreadGroups().size() >= 7); + assertTrue(ThreadUtils.getAllThreads().size() >= 11); + assertTrue(ThreadUtils.findThreads(ThreadUtils.ALWAYS_TRUE_PREDICATE).size() >= 11); + assertEquals(1, ThreadUtils.findThreadsByName(t4.getName(), threadGroup3.getName()).size()); + assertEquals(0, ThreadUtils.findThreadsByName(t4.getName(), threadGroup2.getName()).size()); + assertEquals(2, ThreadUtils.findThreadsByName(t11.getName(), threadGroup7.getName()).size()); + } finally { + for (final Thread thread : threads) { + thread.interrupt(); + thread.join(); + } + for (final ThreadGroup threadGroup : threadGroups) { + if (!threadGroup.isDestroyed()) { + threadGroup.destroy(); + } + } + } + } + + @Test + public void testConstructor() { + assertNotNull(new ThreadUtils()); + final Constructor[] cons = ThreadUtils.class.getDeclaredConstructors(); + assertEquals(1, cons.length); + assertTrue(Modifier.isPublic(cons[0].getModifiers())); + assertTrue(Modifier.isPublic(ThreadUtils.class.getModifiers())); + assertFalse(Modifier.isFinal(ThreadUtils.class.getModifiers())); + } + + @Test + public void testInvalidThreadId() { + assertThrows(IllegalArgumentException.class, () -> ThreadUtils.findThreadById(-5L)); + } + + @Test + public void testNoThread() { + assertEquals(0, ThreadUtils.findThreadsByName("some_thread_which_does_not_exist_18762ZucTT").size()); + } + + @Test + public void testNoThreadGroup() { + assertEquals(0, ThreadUtils.findThreadGroupsByName("some_thread_group_which_does_not_exist_18762ZucTTII").size()); } @Test @@ -51,18 +164,8 @@ public class ThreadUtilsTest { } @Test - public void testNullThreadThreadGroupName1() { - assertThrows(NullPointerException.class, () -> ThreadUtils.findThreadsByName(null, "tgname")); - } - - @Test - public void testNullThreadThreadGroupName2() { - assertThrows(NullPointerException.class, () -> ThreadUtils.findThreadsByName("tname", (String) null)); - } - - @Test - public void testNullThreadThreadGroupName3() { - assertThrows(NullPointerException.class, () -> ThreadUtils.findThreadsByName(null, (String) null)); + public void testNullThreadName() { + assertThrows(NullPointerException.class, () -> ThreadUtils.findThreadsByName(null)); } @Test @@ -81,8 +184,75 @@ public class ThreadUtilsTest { } @Test - public void testInvalidThreadId() { - assertThrows(IllegalArgumentException.class, () -> ThreadUtils.findThreadById(-5L)); + public void testNullThreadThreadGroupName1() { + assertThrows(NullPointerException.class, () -> ThreadUtils.findThreadsByName(null, "tgname")); + } + + @Test + public void testNullThreadThreadGroupName2() { + assertThrows(NullPointerException.class, () -> ThreadUtils.findThreadsByName("tname", (String) null)); + } + + @Test + public void testNullThreadThreadGroupName3() { + assertThrows(NullPointerException.class, () -> ThreadUtils.findThreadsByName(null, (String) null)); + } + + @Test + public void testSystemThreadGroupExists() { + final ThreadGroup systemThreadGroup = ThreadUtils.getSystemThreadGroup(); + assertNotNull(systemThreadGroup); + assertNull(systemThreadGroup.getParent()); + assertEquals("system", systemThreadGroup.getName()); + } + + @Test + public void testThreadGroups() throws InterruptedException { + final ThreadGroup threadGroup = new ThreadGroup("thread_group_DDZZ99__"); + final Thread t1 = new TestThread(threadGroup, "thread1_XXOOPP__"); + final Thread t2 = new TestThread(threadGroup, "thread2_XXOOPP__"); + + try { + t1.start(); + t2.start(); + assertEquals(1, ThreadUtils.findThreadsByName("thread1_XXOOPP__").size()); + assertEquals(1, ThreadUtils.findThreadsByName("thread1_XXOOPP__", "thread_group_DDZZ99__").size()); + assertEquals(1, ThreadUtils.findThreadsByName("thread2_XXOOPP__", "thread_group_DDZZ99__").size()); + assertEquals(0, ThreadUtils.findThreadsByName("thread1_XXOOPP__", "non_existent_thread_group_JJHHZZ__").size()); + assertEquals(0, ThreadUtils.findThreadsByName("non_existent_thread_BBDDWW__", "thread_group_DDZZ99__").size()); + assertEquals(1, ThreadUtils.findThreadGroupsByName("thread_group_DDZZ99__").size()); + assertEquals(0, ThreadUtils.findThreadGroupsByName("non_existent_thread_group_JJHHZZ__").size()); + assertNotNull(ThreadUtils.findThreadById(t1.getId(), threadGroup)); + } finally { + t1.interrupt(); + t2.interrupt(); + t1.join(); + t2.join(); + threadGroup.destroy(); + } + } + + @Test + public void testThreadGroupsById() throws InterruptedException { + final ThreadGroup threadGroup = new ThreadGroup("thread_group_DDZZ99__"); + final Thread t1 = new TestThread(threadGroup, "thread1_XXOOPP__"); + final Thread t2 = new TestThread(threadGroup, "thread2_XXOOPP__"); + final long nonExistingId = t1.getId()+t2.getId(); + + try { + t1.start(); + t2.start(); + assertSame(t1, ThreadUtils.findThreadById(t1.getId(), "thread_group_DDZZ99__")); + assertSame(t2, ThreadUtils.findThreadById(t2.getId(), "thread_group_DDZZ99__")); + assertNull(ThreadUtils.findThreadById(nonExistingId, "non_existent_thread_group_JJHHZZ__")); + assertNull(ThreadUtils.findThreadById(nonExistingId, "thread_group_DDZZ99__")); + } finally { + t1.interrupt(); + t2.interrupt(); + t1.join(); + t2.join(); + threadGroup.destroy(); + } } @Test @@ -102,53 +272,29 @@ public class ThreadUtilsTest { assertThrows(NullPointerException.class, () -> ThreadUtils.findThreadGroups(null)); } - @Test - public void testThreadsNullPredicate() { - assertThrows(NullPointerException.class, () -> ThreadUtils.findThreads(null)); - } @Test - public void testNoThread() { - assertEquals(0, ThreadUtils.findThreadsByName("some_thread_which_does_not_exist_18762ZucTT").size()); - } - - @Test - public void testNoThreadGroup() { - assertEquals(0, ThreadUtils.findThreadGroupsByName("some_thread_group_which_does_not_exist_18762ZucTTII").size()); - } - - @Test - public void testSystemThreadGroupExists() { - final ThreadGroup systemThreadGroup = ThreadUtils.getSystemThreadGroup(); - assertNotNull(systemThreadGroup); - assertNull(systemThreadGroup.getParent()); - assertEquals("system", systemThreadGroup.getName()); - } - - @Test - public void testAtLeastOneThreadExists() { - assertFalse(ThreadUtils.getAllThreads().isEmpty()); - } - - @Test - public void testAtLeastOneThreadGroupsExists() { - assertFalse(ThreadUtils.getAllThreadGroups().isEmpty()); - } - - @Test - public void testThreadsSameName() throws InterruptedException { - final Thread t1 = new TestThread("thread1_XXOOLL__"); - final Thread alsot1 = new TestThread("thread1_XXOOLL__"); + public void testThreadGroupsRef() throws InterruptedException { + final ThreadGroup threadGroup = new ThreadGroup("thread_group_DDZZ99__"); + final ThreadGroup deadThreadGroup = new ThreadGroup("dead_thread_group_MMQQSS__"); + deadThreadGroup.destroy(); + final Thread t1 = new TestThread(threadGroup, "thread1_XXOOPP__"); + final Thread t2 = new TestThread(threadGroup, "thread2_XXOOPP__"); try { t1.start(); - alsot1.start(); - assertEquals(2, ThreadUtils.findThreadsByName("thread1_XXOOLL__").size()); + t2.start(); + assertEquals(1, ThreadUtils.findThreadsByName("thread1_XXOOPP__").size()); + assertEquals(1, ThreadUtils.findThreadsByName("thread1_XXOOPP__", threadGroup).size()); + assertEquals(1, ThreadUtils.findThreadsByName("thread2_XXOOPP__", threadGroup).size()); + assertEquals(0, ThreadUtils.findThreadsByName("thread1_XXOOPP__", deadThreadGroup).size()); } finally { t1.interrupt(); - alsot1.interrupt(); + t2.interrupt(); t1.join(); - alsot1.join(); + t2.join(); + threadGroup.destroy(); + assertEquals(0, ThreadUtils.findThreadsByName("thread2_XXOOPP__", threadGroup).size()); } } @@ -202,172 +348,26 @@ public class ThreadUtilsTest { } } + @Test + public void testThreadsNullPredicate() { + assertThrows(NullPointerException.class, () -> ThreadUtils.findThreads(null)); + } + @Test - public void testThreadGroups() throws InterruptedException { - final ThreadGroup threadGroup = new ThreadGroup("thread_group_DDZZ99__"); - final Thread t1 = new TestThread(threadGroup, "thread1_XXOOPP__"); - final Thread t2 = new TestThread(threadGroup, "thread2_XXOOPP__"); + public void testThreadsSameName() throws InterruptedException { + final Thread t1 = new TestThread("thread1_XXOOLL__"); + final Thread alsot1 = new TestThread("thread1_XXOOLL__"); try { t1.start(); - t2.start(); - assertEquals(1, ThreadUtils.findThreadsByName("thread1_XXOOPP__").size()); - assertEquals(1, ThreadUtils.findThreadsByName("thread1_XXOOPP__", "thread_group_DDZZ99__").size()); - assertEquals(1, ThreadUtils.findThreadsByName("thread2_XXOOPP__", "thread_group_DDZZ99__").size()); - assertEquals(0, ThreadUtils.findThreadsByName("thread1_XXOOPP__", "non_existent_thread_group_JJHHZZ__").size()); - assertEquals(0, ThreadUtils.findThreadsByName("non_existent_thread_BBDDWW__", "thread_group_DDZZ99__").size()); - assertEquals(1, ThreadUtils.findThreadGroupsByName("thread_group_DDZZ99__").size()); - assertEquals(0, ThreadUtils.findThreadGroupsByName("non_existent_thread_group_JJHHZZ__").size()); - assertNotNull(ThreadUtils.findThreadById(t1.getId(), threadGroup)); + alsot1.start(); + assertEquals(2, ThreadUtils.findThreadsByName("thread1_XXOOLL__").size()); } finally { t1.interrupt(); - t2.interrupt(); + alsot1.interrupt(); t1.join(); - t2.join(); - threadGroup.destroy(); - } - } - - @Test - public void testThreadGroupsRef() throws InterruptedException { - final ThreadGroup threadGroup = new ThreadGroup("thread_group_DDZZ99__"); - final ThreadGroup deadThreadGroup = new ThreadGroup("dead_thread_group_MMQQSS__"); - deadThreadGroup.destroy(); - final Thread t1 = new TestThread(threadGroup, "thread1_XXOOPP__"); - final Thread t2 = new TestThread(threadGroup, "thread2_XXOOPP__"); - - try { - t1.start(); - t2.start(); - assertEquals(1, ThreadUtils.findThreadsByName("thread1_XXOOPP__").size()); - assertEquals(1, ThreadUtils.findThreadsByName("thread1_XXOOPP__", threadGroup).size()); - assertEquals(1, ThreadUtils.findThreadsByName("thread2_XXOOPP__", threadGroup).size()); - assertEquals(0, ThreadUtils.findThreadsByName("thread1_XXOOPP__", deadThreadGroup).size()); - } finally { - t1.interrupt(); - t2.interrupt(); - t1.join(); - t2.join(); - threadGroup.destroy(); - assertEquals(0, ThreadUtils.findThreadsByName("thread2_XXOOPP__", threadGroup).size()); - } - } - - @Test - public void testThreadGroupsById() throws InterruptedException { - final ThreadGroup threadGroup = new ThreadGroup("thread_group_DDZZ99__"); - final Thread t1 = new TestThread(threadGroup, "thread1_XXOOPP__"); - final Thread t2 = new TestThread(threadGroup, "thread2_XXOOPP__"); - final long nonExistingId = t1.getId()+t2.getId(); - - try { - t1.start(); - t2.start(); - assertSame(t1, ThreadUtils.findThreadById(t1.getId(), "thread_group_DDZZ99__")); - assertSame(t2, ThreadUtils.findThreadById(t2.getId(), "thread_group_DDZZ99__")); - assertNull(ThreadUtils.findThreadById(nonExistingId, "non_existent_thread_group_JJHHZZ__")); - assertNull(ThreadUtils.findThreadById(nonExistingId, "thread_group_DDZZ99__")); - } finally { - t1.interrupt(); - t2.interrupt(); - t1.join(); - t2.join(); - threadGroup.destroy(); - } - } - - @Test - public void testConstructor() { - assertNotNull(new ThreadUtils()); - final Constructor[] cons = ThreadUtils.class.getDeclaredConstructors(); - assertEquals(1, cons.length); - assertTrue(Modifier.isPublic(cons[0].getModifiers())); - assertTrue(Modifier.isPublic(ThreadUtils.class.getModifiers())); - assertFalse(Modifier.isFinal(ThreadUtils.class.getModifiers())); - } - - @Test - public void testComplexThreadGroups() throws Exception { - final ThreadGroup threadGroup1 = new ThreadGroup("thread_group_1__"); - final ThreadGroup threadGroup2 = new ThreadGroup("thread_group_2__"); - final ThreadGroup threadGroup3 = new ThreadGroup(threadGroup2, "thread_group_3__"); - final ThreadGroup threadGroup4 = new ThreadGroup(threadGroup2, "thread_group_4__"); - final ThreadGroup threadGroup5 = new ThreadGroup(threadGroup1, "thread_group_5__"); - final ThreadGroup threadGroup6 = new ThreadGroup(threadGroup4, "thread_group_6__"); - final ThreadGroup threadGroup7 = new ThreadGroup(threadGroup4, "thread_group_7__"); - final ThreadGroup threadGroup7Doubled = new ThreadGroup(threadGroup4, "thread_group_7__"); - final List threadGroups = Arrays.asList(threadGroup1, threadGroup2, threadGroup3, threadGroup4, threadGroup5, threadGroup6, threadGroup7, threadGroup7Doubled); - - final Thread t1 = new TestThread("thread1_X__"); - final Thread t2 = new TestThread(threadGroup1, "thread2_X__"); - final Thread t3 = new TestThread(threadGroup2, "thread3_X__"); - final Thread t4 = new TestThread(threadGroup3, "thread4_X__"); - final Thread t5 = new TestThread(threadGroup4, "thread5_X__"); - final Thread t6 = new TestThread(threadGroup5, "thread6_X__"); - final Thread t7 = new TestThread(threadGroup6, "thread7_X__"); - final Thread t8 = new TestThread(threadGroup4, "thread8_X__"); - final Thread t9 = new TestThread(threadGroup6, "thread9_X__"); - final Thread t10 = new TestThread(threadGroup3, "thread10_X__"); - final Thread t11 = new TestThread(threadGroup7, "thread11_X__"); - final Thread t11Doubled = new TestThread(threadGroup7Doubled, "thread11_X__"); - final List threads = Arrays.asList(t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t11Doubled); - - try { - for (final Thread thread : threads) { - thread.start(); - } - assertTrue(ThreadUtils.getAllThreadGroups().size() >= 7); - assertTrue(ThreadUtils.getAllThreads().size() >= 11); - assertTrue(ThreadUtils.findThreads(ThreadUtils.ALWAYS_TRUE_PREDICATE).size() >= 11); - assertEquals(1, ThreadUtils.findThreadsByName(t4.getName(), threadGroup3.getName()).size()); - assertEquals(0, ThreadUtils.findThreadsByName(t4.getName(), threadGroup2.getName()).size()); - assertEquals(2, ThreadUtils.findThreadsByName(t11.getName(), threadGroup7.getName()).size()); - } finally { - for (final Thread thread : threads) { - thread.interrupt(); - thread.join(); - } - for (final ThreadGroup threadGroup : threadGroups) { - if (!threadGroup.isDestroyed()) { - threadGroup.destroy(); - } - } - } - } - - - private static class TestThread extends Thread { - private final CountDownLatch latch = new CountDownLatch(1); - - TestThread(final String name) { - super(name); - } - - TestThread(final ThreadGroup group, final String name) { - super(group, name); - } - - @Override - public synchronized void start() { - super.start(); - try { - latch.await(); - } catch (final InterruptedException e) { - Thread.currentThread().interrupt(); - } - } - - @Override - public void run() { - latch.countDown(); - try { - synchronized(this) { - this.wait(); - } - } catch (final InterruptedException e) { - Thread.currentThread().interrupt(); - } + alsot1.join(); } } }